-
Notifications
You must be signed in to change notification settings - Fork 227
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce QueryResult class for QueryEngine caching #1333
Merged
Merged
+173
−112
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aklish
approved these changes
May 19, 2020
aklish
approved these changes
May 20, 2020
aklish
pushed a commit
that referenced
this pull request
May 28, 2020
* Make QueryEngine cache bypass flag part of Query * Forming the cache key is not free, so don't a use stub cache * Add QueryResult class * Add pageTotals to QueryResult * Pass page totals through QueryResult instead of Pagination * Codacy doesn't know @value makes fields private
aklish
pushed a commit
that referenced
this pull request
Jul 10, 2020
* Make QueryEngine cache bypass flag part of Query * Forming the cache key is not free, so don't a use stub cache * Add QueryResult class * Add pageTotals to QueryResult * Pass page totals through QueryResult instead of Pagination * Codacy doesn't know @value makes fields private
aklish
added a commit
that referenced
this pull request
Jul 24, 2020
* parent a14ccfbb7b558d27799b4e7b1916850519639708 author Jack (정환) <QubitPi@users.noreply.github.com> 1559678988 -0700 committer Aaron Klish <klish@verizonmedia.com> 1589583449 -0500 Create AggregationDataStore module (#845) * Create AggregationDataStore module * Address Aaron's comments * Fix build failure AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Define QueryEngine Contract (#867) Fixed rebase on master SQL Query Engine (#878) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Added calcite as a dependency. Merged in changes for QueryEngine interface Fixed checkstyle issues Added basic H2 DB test harness Started breaking out projections Moved getValue and setValue from PersistentResource to EntityDictionary Added basic logic to hydrate entities Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration Minor cleanup Refactored HQLFilterOperation to take an alias generator Added test support for RSQL filter generation. Some cleanup Added basic support for WHERE clause filtering on the fact table Added working test for subquery SQL Added basic join logic for filters Added a test with a subquery and a filter join Refactored Schema classes and Query to support metric aggregation SQL expansion Added group by support Added logic for ID generation Added sorting logic and test Added pagination support and testing All column references use proper name now for SQL Removed calcite as a query engine Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton Added HAVING clause support Changed Query to take schema instead of entityClass First pass at cleanup Fixed checkstyles Cleanup Cleanup Added a complex SQL expression test and fixed bugs Fixed merge issues. Added another test. Added better logging Fixed bug in pagination SQL generation * Build is working * Inspection rework Add EntityProjection plumbing (#949) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * Removed duplicated Schema class from rebase * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup Hydrate Relationship (#987) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Added basic H2 DB test harness * Started breaking out projections * Moved getValue and setValue from PersistentResource to EntityDictionary * Added basic logic to hydrate entities * Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration * Refactored HQLFilterOperation to take an alias generator * Added test support for RSQL filter generation. Some cleanup * Added basic support for WHERE clause filtering on the fact table * Added working test for subquery SQL * Added basic join logic for filters * Added a test with a subquery and a filter join * Refactored Schema classes and Query to support metric aggregation SQL expansion * Added group by support * Added logic for ID generation * Added sorting logic and test * Added pagination support and testing * All column references use proper name now for SQL * Removed calcite as a query engine * Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton * Added HAVING clause support * Changed Query to take schema instead of entityClass * First pass at cleanup * Fixed checkstyles * Cleanup * Hydrate Relationship * Cleanup * Added a complex SQL expression test and fixed bugs * Fixed merge issues. Added another test. Added better logging * Self-review * Self-review * Self-review * Self-review * Self-review * Address comments from @aklish * Refactor EntityHydrator (#893) * rebase * keep Jiaqi's changes * fix id * fix maven verify * Remove HQLFilterOperation * fix dictionary * fix SqlEngineTest * remove unused part * make codacy happy * should use getParametrizedType * address comments Implement GraphQLEntityProjectionMaker (#986) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * GraphQL projection maker using document * Argument handling and fragment check * Add comments * Add fragment resolver * fix typo * break code into more methods * remove pagination and sorting * Removed duplicated Schema class from rebase * re-arrange keywords * Address comment * Add arguments for attribute fields * Handle arguments * support partial query, update edges/node logic * Entity projection with aliases * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * fix create relationship object using entity * Add tests passed * code clean up * refactor fatcher, fix test cases * rename keywords * rebase branch (#12) * rebased * Graphql projection refactor (#13) * fix fragment resolver * Fix variable resolver * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup * rebase * Rebased on AggregationDataStore * clean up extra new lines * address comments * Builder pattern * update comments * remove projection in entity * fix jackson * Hydrate Relationship (#987) (#15) * Address some codecy comments * Add comment for partial query * Reenable tests * Address comments, refactor alias * Add test for alias * swapped test case * fix get type Added AggregationDataStore Code (#991) * Adding testing for aggregation data store * Debugging integration tests * Continuing testing work * AggregationDataStore * AggregationDataStore testing * Added more tests * Aggregation Data Store * Cleaned up testing code * Cleaned up code, fixed helper for AggregationDataStore * end * Fixed checkstyle, other minor fixes * fixed comment * Minor fixes * Fixed id type issue, added exception for queries with no metrics Fixed build (#993) Making TimeDimension an interface (#992) [maven-release-plugin] prepare release 5.0.0-pr1 [maven-release-plugin] prepare for next development iteration Renamed graphQL file to match test (#1002) [maven-release-plugin] prepare release 5.0.0-pr2 [maven-release-plugin] prepare for next development iteration Add JoinTo annotation (#1006) * Added JoinTo Annotation * Added working test * Added TODO comment for next PR * Added TODO comment for next PR * Added Sorting and Filtering support for JoinTo Columns * Fixed IT tests for Aggregation Data Store * Moved entityManager creation to happen separately for each query (#1008) * Moved entityManager creation to happen separately for each query * Closing EntityManager after each query * Inspection rework Column annotation (#1017) * Solved column issue and added QueryEngineFactory * Caching query engine in AggregationDataStore * Fixed column description * Update SQLQueryEngine.java (#1019) * Add SQLMetrix, rearrange packages (#1020) * Add SQLMetrix, rearrange packages * address comment Manager transacton manually (#1021) * Manager transacton manually * Add readonly Hydrate GraphQL Schema with parameterized attributes (#1018) * GraphQL schema expose expected argument name and its type for each attribute * Change empty arguments to unmodifable set AggregationStore: Add multiple time grain definitions to schema (#1022) * Fixed checkstyle warnings and errors. Separated the Query dimension interface from the Schema dimension interface * Added skeleton code to convert entity projection arguments into time grains * Cleanup * Class renames per inspection comments * Inspection comments Refactor time dimension logic (#1028) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception ISSUE-1026 Add support for @Subselect (#1038) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect * Address comments ISSUE-1027 Support join for having clause (#1039) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1027 Support join for having clause function name fixed to enableISO8601Dates (#1052) Support for multiple queries at root is added (#1044) * Support for multiple queries at root is added * Added test with alias * comments resolved Add time grain to GraphQL schema (#1042) * Added basic plumbing to push attributes from the entity projection down to the QueryEngine * Added logic to expand SQL time expression in SQLQueryEngine * Added SQLQueryEngine tests * Added IT tests * The AggregationStore now adds graphql parameters for parameterized columns * Minor refactor * Inspection rework * Minor fix Support multiple query of same entity with different alias (#1055) * Support multiple query of same entity with different alias * add static method to generate keyname for GraphQLProjectionInfo projections * Remove aliasPartialQuerySameAttribute MetadataStore Models (#1068) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * Metadatastore models * Address comments * address comments * move root * fix style check SQLQueryTemplate Model (#1073) * SQLQueryTemplate * SQLTables * refactor * update sql dimension projection * update sql dimension projection * clean up dimension projection * refactor sql components * aggregatable field rework * add comments * rearrange packages * Add dimension projection back * fix checkstyle * Add dictionary * Simplify MetricFunction and SQLQueryTemplate * Address comments Integrate Metadata Model and SQLQueryTemplate Model (#1083) * Integrate Metadata Model and SQLQueryTemplate Model * remove AggregationDictionary and AggregationManager * Add timezone * Can only query analyticView Fixed issues with rebase Add auto configuration for aggregation store (#1087) * Added autoconfiguration for QueryEngineFactory * Unified class scanning. Started cleaning up datastores so they only register the entities they manage * Full build passes * Minor cleanup * Minor refactoring * Added EntityManagerFactory bean configuratino * Refactored class scanning for Elide standalone * Updated spring boot starter pom * Removed @Entity from all metadata models. Started cleaning up entity dictionary entity registration * Broken implementation. Just checking in so I can revert if needed. * All tests pass * Added unit tests * Minor cleanup * One more fix * Fixed broken tests * Added package include support back * Class scanning for annotations ignores inherited * Added a test based on inspection comments * Inspection comment fix * Changed initalization of MetadataStore * More inspection rework * Turned back on OWASP scanning * More rework remove @Inherited (#1092) Support Non JPA Entity in AggregationDataStore (#1051) * Create AggregationDataStore module (#845) * Create AggregationDataStore module * Address Aaron's comments * Fix build failure AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Define QueryEngine Contract (#867) Fixed rebase on master SQL Query Engine (#878) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Added calcite as a dependency. Merged in changes for QueryEngine interface Fixed checkstyle issues Added basic H2 DB test harness Started breaking out projections Moved getValue and setValue from PersistentResource to EntityDictionary Added basic logic to hydrate entities Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration Minor cleanup Refactored HQLFilterOperation to take an alias generator Added test support for RSQL filter generation. Some cleanup Added basic support for WHERE clause filtering on the fact table Added working test for subquery SQL Added basic join logic for filters Added a test with a subquery and a filter join Refactored Schema classes and Query to support metric aggregation SQL expansion Added group by support Added logic for ID generation Added sorting logic and test Added pagination support and testing All column references use proper name now for SQL Removed calcite as a query engine Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton Added HAVING clause support Changed Query to take schema instead of entityClass First pass at cleanup Fixed checkstyles Cleanup Cleanup Added a complex SQL expression test and fixed bugs Fixed merge issues. Added another test. Added better logging Fixed bug in pagination SQL generation * Build is working * Inspection rework Add EntityProjection plumbing (#949) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * Removed duplicated Schema class from rebase * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup Hydrate Relationship (#987) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Added basic H2 DB test harness * Started breaking out projections * Moved getValue and setValue from PersistentResource to EntityDictionary * Added basic logic to hydrate entities * Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration * Refactored HQLFilterOperation to take an alias generator * Added test support for RSQL filter generation. Some cleanup * Added basic support for WHERE clause filtering on the fact table * Added working test for subquery SQL * Added basic join logic for filters * Added a test with a subquery and a filter join * Refactored Schema classes and Query to support metric aggregation SQL expansion * Added group by support * Added logic for ID generation * Added sorting logic and test * Added pagination support and testing * All column references use proper name now for SQL * Removed calcite as a query engine * Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton * Added HAVING clause support * Changed Query to take schema instead of entityClass * First pass at cleanup * Fixed checkstyles * Cleanup * Hydrate Relationship * Cleanup * Added a complex SQL expression test and fixed bugs * Fixed merge issues. Added another test. Added better logging * Self-review * Self-review * Self-review * Self-review * Self-review * Address comments from @aklish * Refactor EntityHydrator (#893) * rebase * keep Jiaqi's changes * fix id * fix maven verify * Remove HQLFilterOperation * fix dictionary * fix SqlEngineTest * remove unused part * make codacy happy * should use getParametrizedType * address comments Implement GraphQLEntityProjectionMaker (#986) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * GraphQL projection maker using document * Argument handling and fragment check * Add comments * Add fragment resolver * fix typo * break code into more methods * remove pagination and sorting * Removed duplicated Schema class from rebase * re-arrange keywords * Address comment * Add arguments for attribute fields * Handle arguments * support partial query, update edges/node logic * Entity projection with aliases * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * fix create relationship object using entity * Add tests passed * code clean up * refactor fatcher, fix test cases * rename keywords * rebase branch (#12) * rebased * Graphql projection refactor (#13) * fix fragment resolver * Fix variable resolver * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup * rebase * Rebased on AggregationDataStore * clean up extra new lines * address comments * Builder pattern * update comments * remove projection in entity * fix jackson * Hydrate Relationship (#987) (#15) * Address some codecy comments * Add comment for partial query * Reenable tests * Address comments, refactor alias * Add test for alias * swapped test case * fix get type Added AggregationDataStore Code (#991) * Adding testing for aggregation data store * Debugging integration tests * Continuing testing work * AggregationDataStore * AggregationDataStore testing * Added more tests * Aggregation Data Store * Cleaned up testing code * Cleaned up code, fixed helper for AggregationDataStore * end * Fixed checkstyle, other minor fixes * fixed comment * Minor fixes * Fixed id type issue, added exception for queries with no metrics Fixed build (#993) Making TimeDimension an interface (#992) * [maven-release-plugin] prepare release 5.0.0-pr1 * [maven-release-plugin] prepare for next development iteration * Renamed graphQL file to match test (#1002) * [maven-release-plugin] prepare release 5.0.0-pr2 * [maven-release-plugin] prepare for next development iteration * Add JoinTo annotation (#1006) * Added JoinTo Annotation * Added working test * Added TODO comment for next PR * Added TODO comment for next PR * Added Sorting and Filtering support for JoinTo Columns * Fixed IT tests for Aggregation Data Store * Moved entityManager creation to happen separately for each query (#1008) * Moved entityManager creation to happen separately for each query * Closing EntityManager after each query * Inspection rework * Column annotation (#1017) * Solved column issue and added QueryEngineFactory * Caching query engine in AggregationDataStore * Fixed column description * Update SQLQueryEngine.java (#1019) * Add SQLMetrix, rearrange packages (#1020) * Add SQLMetrix, rearrange packages * address comment * Manager transacton manually * Add readonly * Manager transacton manually (#1021) * Manager transacton manually * Add readonly * Hydrate GraphQL Schema with parameterized attributes (#1018) * GraphQL schema expose expected argument name and its type for each attribute * Change empty arguments to unmodifable set * AggregationStore: Add multiple time grain definitions to schema (#1022) * Fixed checkstyle warnings and errors. Separated the Query dimension interface from the Schema dimension interface * Added skeleton code to convert entity projection arguments into time grains * Cleanup * Class renames per inspection comments * Inspection comments * some rework * use getTimeDimension() * change exception * Refactor time dimension logic (#1028) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect (#1038) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect * Address comments * ISSUE-1027 Support join for having clause (#1039) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1027 Support join for having clause * View Design * Add tests and cleanup * rename annotation * function name fixed to enableISO8601Dates (#1052) * fix bugs * Support for multiple queries at root is added (#1044) * Support for multiple queries at root is added * Added test with alias * comments resolved * merge annotations * don't group by view relationship * Add time grain to GraphQL schema (#1042) * Added basic plumbing to push attributes from the entity projection down to the QueryEngine * Added logic to expand SQL time expression in SQLQueryEngine * Added SQLQueryEngine tests * Added IT tests * The AggregationStore now adds graphql parameters for parameterized columns * Minor refactor * Inspection rework * Minor fix * Support multiple query of same entity with different alias (#1055) * Support multiple query of same entity with different alias * add static method to generate keyname for GraphQLProjectionInfo projections * Remove aliasPartialQuerySameAttribute * MetadataStore Models (#1068) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * Metadatastore models * Address comments * address comments * move root * fix style check * SQLQueryTemplate Model (#1073) * SQLQueryTemplate * SQLTables * refactor * update sql dimension projection * update sql dimension projection * clean up dimension projection * refactor sql components * aggregatable field rework * add comments * rearrange packages * Add dimension projection back * fix checkstyle * Add dictionary * Simplify MetricFunction and SQLQueryTemplate * Address comments * Integrate Metadata Model and SQLQueryTemplate Model (#1083) * Integrate Metadata Model and SQLQueryTemplate Model * remove AggregationDictionary and AggregationManager * Add timezone * Can only query analyticView * integrate view with aggregation and metadata * remove includeField * remove @view * Use NonEntityDictionary * remove id * revert access changes * fix JPA entity check * remove @Entity from analyticViews * use table name as relationship type id * revert NonEntitydictinoary * tiny rework * Integration tests * Add jsonapi ittest * aggregation data store doesn't manage jpa entities * address comments fix integration dependencies (#1093) [maven-release-plugin] prepare release 5.0.0-pr3 [maven-release-plugin] prepare for next development iteration Fixed elide standalone pom from rebase Fixed minor bug in rebase Fixed rebase Improving class scanning performance for MetadataStore (#1117) Enable elide5 travis builds (#1129) * Move repeated @Sql annotations to class level (#1119) * Turning on travis builds with code coverage for Elide 5.x * Fixing security issue in spring-boot-web Co-authored-by: Brutus5000 <Brutus5000@gmx.net> Fix sorting and ambiguous join issue (#1127) * Added sorting on aggregated metric based on latest elide-5.x * Fix ambiguity problem * update comments * fix codacy * refactor generateColumnReference * update comment * address comments * test cleanup * update unittest * fix elide core alias * QueryValidatorTest * EntityProjectionTranslatorTest * go joinFragment approach * delete jointrienode Support no metric query (#1137) [maven-release-plugin] prepare release 5.0.0-pr4 [maven-release-plugin] prepare for next development iteration Check dependency injection (#1138) * Move repeated @Sql annotations to class level (#1119) * Fixing OWASP security warning for Tomcat dependency in Spring Web (#1132) * Adding support for dependency injection of Checks. Added test injection classes * Unit tests pass * Tests pass * Removed Initializer Concept Co-authored-by: Brutus5000 <Brutus5000@gmx.net> Fix travis log length (#1140) * Move repeated @Sql annotations to class level (#1119) * Fixing OWASP security warning for Tomcat dependency in Spring Web (#1132) * Removed unnecessary request/response logging (to shorten travis logs) * Address inspection comments * Address inspection comments * Address inspection comments * Removed logging of graphQL model building to shorten length * Fixed compilation error Co-authored-by: Brutus5000 <Brutus5000@gmx.net> [maven-release-plugin] prepare release 5.0.0-pr5 [maven-release-plugin] prepare for next development iteration Refactoring Elide Security Checks (#1144) Removed UpdateOnCreate. Refactored AuditLogger, Pagination, & Sorting (#1146) * Removed UpdateOnCreate. Refactored AuditLogger * Refactored Sorting * Refactored Pagination * Refactored Pagination * Pagination refactor builds and tests pass * Codacy fixes * Inspection rework * Fixes build * More inspection rework * Fix build Refactor share permission (#1154) * Refactored Sorting * Refactored Pagination * Refactored Pagination * Pagination refactor builds and tests pass * Codacy fixes * Refactored SharePermission to NonTransferable * Fixed build * Fixed startup bug * Fixed codacy and inspection comments * Update elide-core/src/main/java/com/yahoo/elide/core/EntityDictionary.java Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> * Inspection rework Co-authored-by: Jon Kilroy <jkilroy@gmail.com> metadata refactor (#1179) * metadata refactor * merge table and analyticView * fix reflection package * Make Table constrcut its own columns * table json type alias * add comment @Join and JoinPath add comment hide non-jpd entities in grpahql hide joins refactor hidden remove ant remove relationshp, update model (#1186) Rebased on master [maven-release-plugin] prepare release 5.0.0-pr6 [maven-release-plugin] prepare for next development iteration sourceColumn (#1196) * sourceColumn * address comment * change to sourcePath Cleaning up ElideSettings Added more test fixes Fixed a number of broken tests Build completes Fixed JSON-API Patch Response Fixed GraphQL errors. Added better errors for Forbidden Access Exception. Minor fix Added setId to EntityDictionary Initial version All test pass except for spring Build passes Adding checkstyle comments for classes Inspection comments Fixed checkstyle issues Change the way types are named in the GraphQL schema (#1215) * name utils * ready for review * fix: AggregationDataStoreIntegrationTest#testGraphQLSchema Label Resolver for Dimension Formula (#1208) * sql expression to dimension formula * Metric formula * Add unit tests * refacot formula references * fix comment * fix comment * resolve physical column * refactor dimensionFormula * cleanup * label resolver * cleanup * refactor * cleanup * move code * labelStore * labelStore 2 * remove generator * refactor metric formula * address comments * move symbol table into sql query engine * remove sourceColumn * update reference expression * visitor design * add comments * add unit join path test * fix timeDimensionProjection * fix null value number * address comments * fix codacy Co-authored-by: hchen04 <han.chen@oath.com> Fixing broken javadoc ColumnProjection Refactor (#1239) * unify projections * remove getFunction() * add table into query template Co-authored-by: hchen04 <han.chen@oath.com> Refactored metric SQL expansion to occur dynamically at query time ra… (#1270) * Refactored metric SQL expansion to occur dynamically at query time rather than statically during service initialization * Update elide-datastore/elide-datastore-aggregation/src/main/java/com/yahoo/elide/datastores/aggregation/queryengines/sql/query/SQLMetricProjection.java Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: Jon Kilroy <jkilroy@gmail.com> Remove path logic from aggregation store (#1271) * Extended query validation to ensure where clause and sorting clauses don't traverse relationships * Added error check for relationship traversal for Having clauses * Hacked up logic to remove reference Table resolve references that take a path * Minor refactoring * Removed logic to extend join path * Refactored column projections to use generics * Removed reference functions from MetricProjection base class * Refactored so that all SQL generation is done inside the ColumnProjection * Refactored so all projection happens through projections * Refactored column projection creation * Removed unnecessary code * Added templateQuery to arguments required to generate SQL in column projections * Fixed codacy issues Co-authored-by: Aaron Klish <klish@verizonmedia.com> Added InMemoryStore to list of datastores that run IT tests (#1225) Co-authored-by: Aaron Klish <klish@verizonmedia.com> Adding TimeDimensions to Table (#1273) Elide 5.x async (#1203) * Adding Async Entity Models Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async module and fixing parent pom version Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async service classes, security and cleanup services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Copyright License Header to Async module classes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Using new request scope for datastore transactions Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove thread sleep used in testing Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing additional issues based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding getter for AsyncQueryResult Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Reformatting. Co-authored-by: Abhino <abhino@gmail.com> * Adding mappedBy. Co-authored-by: Abhino <abhino@gmail.com> * Fixing several review comments - pom, lombok, thread exec Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacity errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving all the DB ORM logic to a utility class for Async Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove dependency on number of hosts, delete permission, separate method for interrupttime calculation Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Making cleaner a separate service. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted tabs. Co-authored-by: Abhino <abhino@gmail.com> * Updating order of modules. Co-authored-by: Abhino <abhino@gmail.com> * Adding cleanup sql. Co-authored-by: Abhino <abhino@gmail.com> * Adding delete logic. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Resolving build error. Co-authored-by: Abhino <abhino@gmail.com> * Changing AsyncDbUtil to use Functional Interface Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing sleep Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding functional interface logic for executeInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding debug statements for AsyncDbUtil Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Codacity errors, exception handling Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Async Entity Models Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async module and fixing parent pom version Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async service classes, security and cleanup services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Copyright License Header to Async module classes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Using new request scope for datastore transactions Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove thread sleep used in testing Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing additional issues based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding getter for AsyncQueryResult Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Reformatting. Co-authored-by: Abhino <abhino@gmail.com> * Adding mappedBy. Co-authored-by: Abhino <abhino@gmail.com> * Fixing several review comments - pom, lombok, thread exec Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacity errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving all the DB ORM logic to a utility class for Async Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove dependency on number of hosts, delete permission, separate method for interrupttime calculation Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Making cleaner a separate service. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted tabs. Co-authored-by: Abhino <abhino@gmail.com> * Updating order of modules. Co-authored-by: Abhino <abhino@gmail.com> * Adding cleanup sql. Co-authored-by: Abhino <abhino@gmail.com> * Adding delete logic. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Resolving build error. Co-authored-by: Abhino <abhino@gmail.com> * Changing AsyncDbUtil to use Functional Interface Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing sleep Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding functional interface logic for executeInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding debug statements for AsyncDbUtil Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Codacity errors, exception handling Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Rebased with elide-5.x and changed User principal logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Rebase Co-authored-by: Abhino <abhino@gmail.com> * Changing CleanerThread to use ExecuteInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing unused imports Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Delete Method changes Co-authored-by: Abhino <abhino@gmail.com> * Overriding hashCode and equals Co-authored-by: Abhino <abhino@gmail.com> * Overriding hashCode and equals Co-authored-by: Abhino <abhino@gmail.com> * Removing unused method Co-authored-by: Abhino <abhino@gmail.com> * Changing response logic for AsyncQuery Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding return to delete method * Resolving Review Comments Co-authored-by: Abhino <abhino@gmail.com> * Resolve some review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Changing the DAO contract and updating references to DAO Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing singletons and extra constructors, simplyfing logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding default constructor and setters for DefaultDAO Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacy error Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Changing Base to use correct obj Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Resolving review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Review comments Co-authored-by: Abhino <Abhino@gmail.com> * Elide 5.x elide-async integration in elide-standalone (#1205) * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Making AsyncQueryDAO configurable Co-authored-by: Abhino <abhino@gmail.com> * Making AsyncQueryDAO configurable Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: abhino <abhino@gmail.com> * Changing call to DefaultAsyncQueryDAO * Review comments Co-authored-by: Abhino <Abhino@gmail.com> Co-authored-by: Abhino <abhino@gmail.com> * Elide 5.x elide-async integration in elide-spring (#1204) * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Adding DAO configuration Co-authored-by: Abhino <abhino@gmail.com> * Checkstyle error Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Codacy Error Co-authored-by: Abhino <Abhino@gmail.com> * Changing include type to asyncQuery to avoid conflict Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Sync Co-authored-by: Abhino <Abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Executor Service Co-authored-by: Abhino <abhino@gmail.com> * Sync with Standalone Value * Changes to change UUID columns type as varchar(36) * Review Comments * Review Comments * Fix review comments Co-authored-by: Abhino <abhino@gmail.com> * Updating per review comments * Remove unused import * Removing status change to Queued * removing unused import * prepersist for status Co-authored-by: moizarafat <moiz.arafat@gmail.com> Co-authored-by: avijay <abhinav.vijaykumar@verizonmedia.com> Co-authored-by: moiz arafat <moiz.arafat@oath.com> Co-authored-by: Moiz Arafat <4307621+moizarafat@users.noreply.github.com> Co-authored-by: moizarafat <moiz.arafat@verizonmedia.com> Simplify life cycle hooks (#1224) * Initial version * Finished code. Starting to flesh out tests * Elide core compiles * Removed CRUDEvent.CrudAction * Added new test structure for LifeCycleTest * Fixed bug in Persistent Resource where relationship reads did not tigger a lifecycle event * Added several LifeCycle Tests * Added create test for persistent resource * Added Elide Persistent Resource Update Test * Added update with change spec test * Added Relationship Edit test * Added relationship test * Fixed checkstyle and compilation errors * Added remove from collection test * Added exception tests * Added delete test * Added read test * Fixed checkstyles * Elide core builds and tests pass * Fixed graphQL tests * Full build now passes * Removed old life cycle annotations * Minor cleanup * Fixed codacy issues * Update README.md Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: Jon Kilroy <jkilroy@gmail.com> Fixed elide-5.x build Fixed rebase issues Turning off retireJS for dependency check Better errors for missing IDs in Patch Extension Request. (#1278) (#1281) * Better errors for missing IDs in Patch Extension Request. (#1278) * Return a better error when handling invalid patch extension requests that are missing IDs * Added tests Co-authored-by: Aaron Klish <klish@verizonmedia.com> * Expect encoded response as array Co-authored-by: Aaron Klish <aklish@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: wcekan <wcekan@verizonmedia.com> [maven-release-plugin] prepare release 5.0.0-pr8 [maven-release-plugin] prepare for next development iteration Patch Extension Lifecycle tests (#1280) * Patch Extension Lifecycle tests * Missing check * Update error body Co-authored-by: wcekan <wcekan@verizonmedia.com> Add version support (#1295) * Initial non working version * More changes * Build passes * Expanded version param outside entity dictionary * Plumbed API version up through RequestScope * Plumbed API version up to controllers and endpoints * All code minus async written and working * Code complete * Build passes * All tests are passing * Changed aggregation store Table id to include version. Metadata will now surface table versions * Added a swagger IT test with API versions * Replace empty version string with constant. Fixed a few bugs in JSON-API parser * Added graphql type introspection test * Added graphql type introspection test * Added spring controller test. Fixed issue with version header parsing * Added spring controller test for graphql * Added swagger controller tests * Added more happy path versioned tests * Fixed bug in GraphQLIT * Added graphQL test for invalid API version * ADded invalid API version graphql controller test * Fixed checkstyles * Added standalone and patch extension tests * Fixed build errors and codacy errors Co-authored-by: Aaron Klish <klish@verizonmedia.com> Migrated spring controllers to use async (#1296) Co-authored-by: Aaron Klish <klish@verizonmedia.com> fixes for Async Models lifecycle hooks failing (#1294) * elide standalone fixes for lifecycle hooks failing * Manual Binding of lifecycle hooks * Manual binding of lifecycle in elide spring * Refactor * Review Comments * elide standalone fixes for lifecycle hooks failing * Manual Binding of lifecycle hooks * Manual binding of lifecycle in elide spring * Refactor * Review Comments * Rebase with 5.x Co-authored-by: moiz arafat <moiz.arafat@oath.com> Implement equals/hashCode and immutability where needed (#1297) * ColumnProjection must implement equals/hashCode * Use @Value for SQLTimeDimensionProjection * Use @Value for Argument * Use @Value for TimeDimensionGrain * Use @Value for TimeDimension * Make Column/Metric immutable * Table can be immutable * Use @Value to simplify Query Changes elide to only inject models annotated with @Inject (#1299) * Changes elide to only inject models annotated with @Inject * Codacy fix Co-authored-by: Aaron Klish <klish@verizonmedia.com> Enhancemnents to Aggregation Store (#1300) Co-authored-by: moiz arafat <moiz.arafat@oath.com> QueryEngine result cache (#1279) * Add QueryEngine cache API * Remove outdated javadoc text Elide Async Feature Unit and Integration Tests (#1311) * Added integration,unit test setup for Async Module with few tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Licence headers, Sample entity and working Async test for POST,GET Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding additional integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding remaining integration tests and updating javadocs Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding all unit tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating tests to work with Singleton changes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Modifying tests to work with singleton logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Resolving some codacy errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding DSL for GraphQL and addressing review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing unit tests and checkstyle errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving tests to new format Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing session not closed error and checkstyle errors * Fixing imports Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing unused method and updating harness Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating unit tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating ResourceConfig for AsyncTest Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving logic for resource config to new test binder Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding bindFactory logic for async services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing IT * Fixing IT Co-authored-by: Abhino <abhino@gmail.com> * Adding Remaining integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Consolidating filter logic for integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing legacy Hibernate entity manager store (so it doesn't recycle the entity manager * Adding additional integration tests for Standalone and Spring boot Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacy errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Review Comments Co-authored-by: abhino <abhino@gmail.com> Co-authored-by: avijay <abhinav.vijaykumar@verizonmedia.com> Co-authored-by: moizarafat <moiz.arafat@gmail.com> Co-authored-by: moiz arafat <moiz.arafat@oath.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> in memory compilation integrated with dynamic config helpers (#1255) * Rebase against 5.x Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * pom fix Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * pom fix Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Merging 1220 Co-authored-by: rishi-aga <rishi.aga123@gmail.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Review Comments Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Update DynamicConfigTest.java * Review Comments Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> Co-authored-by: rishi-aga <rishi.aga123@gmail.com> * Fixed issues with rebase * Finished rebase * Async ID change from UUID to String and Dynamic Config FIx (#1325) * Async UUID to String, Dynamic Config NPE * Update DefaultAsyncQueryDAOTest.java * TANDS-19093-transactionRegistry-interface (#1332) * TANDS-19093-transactionRegistry-interface * TANDS-19093-transactionRegistry-interface * TANDS-19093-transactionRegistry-interface * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs Co-authored-by: Ramsha Rao <ramsha.rao@verizonmedia.com> * add requestId (#1331) Co-authored-by: aaggarwal <ashish.aggarwal@oath.com> * [maven-release-plugin] prepare release 5.0.0-pr9 * [maven-release-plugin] prepare for next development iteration * Introduce QueryResult class for QueryEngine caching (#1333) * Make QueryEngine cache bypass flag part of Query * Forming the cache key is not free, so don't a use stub cache * Add QueryResult class * Add pageTotals to QueryResult * Pass page totals through QueryResult instead of Pagination * Codacy doesn't know @Value makes fields private * remove missing javadoc warnings (#1337) Co-authored-by: Chandrasekar Rajasekar <chandrasekar.rajasekar@oath.com> * Elide 5.x dynamic config standalone (#1259) * Fix method call, Swagger Doc Update Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Swagger doc update Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * update pom.xml Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * update pom.xml Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * review comments Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Update ElideStandaloneSettings.java * Update pom.xml * Update pom.xml Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> * addTransaction-removeTransaction (#1338) * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169-changing-CVSS-score * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * making DataStore an abstract class * making DataStore an abstract class * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * addressing comments * addressing comments * addressing comments * fixing bugs Co-authored-by: Ramsha Rao <ramsha.rao@verizonmedia.com> * Fixed rebase * Removed old elide example modules * [maven-release-plugin] prepare release 5.0.0-pr10 * [maven-release-plugin] prepare for next development iteration * Validation for Model Configs (#1306) * Dynamic Config Validator Co-authored-by: rishi-aga <rishi.aga123@gmail.com> * Review Comments * Review Comments * Use DynamicConfigValidator instead of ElideConfigParser Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> * add explicit join (#1364) Co-authored-by: Chandrasekar Rajasekar <chandrasekar.rajasekar@oath.com> * Fixes - Honor Doc Version in SwaggerController and Use ISO8601Dates Serde Format in Date Formatting (#1336) * misc_fixes * review comments * Review Comments * DyFixes * DyFixes * Elide dynamic config model verification (#1354) * sign & Verify model * review comments * typo fix * indent fix * review comment * additional testcases * revert system exit * fix codacy * add return * add system exit Co-authored-…
aklish
pushed a commit
that referenced
this pull request
Aug 8, 2020
* Make QueryEngine cache bypass flag part of Query * Forming the cache key is not free, so don't a use stub cache * Add QueryResult class * Add pageTotals to QueryResult * Pass page totals through QueryResult instead of Pagination * Codacy doesn't know @value makes fields private
aklish
added a commit
that referenced
this pull request
Aug 8, 2020
* parent a14ccfbb7b558d27799b4e7b1916850519639708 author Jack (정환) <QubitPi@users.noreply.github.com> 1559678988 -0700 committer Aaron Klish <klish@verizonmedia.com> 1589583449 -0500 Create AggregationDataStore module (#845) * Create AggregationDataStore module * Address Aaron's comments * Fix build failure AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Define QueryEngine Contract (#867) Fixed rebase on master SQL Query Engine (#878) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Added calcite as a dependency. Merged in changes for QueryEngine interface Fixed checkstyle issues Added basic H2 DB test harness Started breaking out projections Moved getValue and setValue from PersistentResource to EntityDictionary Added basic logic to hydrate entities Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration Minor cleanup Refactored HQLFilterOperation to take an alias generator Added test support for RSQL filter generation. Some cleanup Added basic support for WHERE clause filtering on the fact table Added working test for subquery SQL Added basic join logic for filters Added a test with a subquery and a filter join Refactored Schema classes and Query to support metric aggregation SQL expansion Added group by support Added logic for ID generation Added sorting logic and test Added pagination support and testing All column references use proper name now for SQL Removed calcite as a query engine Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton Added HAVING clause support Changed Query to take schema instead of entityClass First pass at cleanup Fixed checkstyles Cleanup Cleanup Added a complex SQL expression test and fixed bugs Fixed merge issues. Added another test. Added better logging Fixed bug in pagination SQL generation * Build is working * Inspection rework Add EntityProjection plumbing (#949) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * Removed duplicated Schema class from rebase * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup Hydrate Relationship (#987) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Added basic H2 DB test harness * Started breaking out projections * Moved getValue and setValue from PersistentResource to EntityDictionary * Added basic logic to hydrate entities * Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration * Refactored HQLFilterOperation to take an alias generator * Added test support for RSQL filter generation. Some cleanup * Added basic support for WHERE clause filtering on the fact table * Added working test for subquery SQL * Added basic join logic for filters * Added a test with a subquery and a filter join * Refactored Schema classes and Query to support metric aggregation SQL expansion * Added group by support * Added logic for ID generation * Added sorting logic and test * Added pagination support and testing * All column references use proper name now for SQL * Removed calcite as a query engine * Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton * Added HAVING clause support * Changed Query to take schema instead of entityClass * First pass at cleanup * Fixed checkstyles * Cleanup * Hydrate Relationship * Cleanup * Added a complex SQL expression test and fixed bugs * Fixed merge issues. Added another test. Added better logging * Self-review * Self-review * Self-review * Self-review * Self-review * Address comments from @aklish * Refactor EntityHydrator (#893) * rebase * keep Jiaqi's changes * fix id * fix maven verify * Remove HQLFilterOperation * fix dictionary * fix SqlEngineTest * remove unused part * make codacy happy * should use getParametrizedType * address comments Implement GraphQLEntityProjectionMaker (#986) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * GraphQL projection maker using document * Argument handling and fragment check * Add comments * Add fragment resolver * fix typo * break code into more methods * remove pagination and sorting * Removed duplicated Schema class from rebase * re-arrange keywords * Address comment * Add arguments for attribute fields * Handle arguments * support partial query, update edges/node logic * Entity projection with aliases * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * fix create relationship object using entity * Add tests passed * code clean up * refactor fatcher, fix test cases * rename keywords * rebase branch (#12) * rebased * Graphql projection refactor (#13) * fix fragment resolver * Fix variable resolver * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup * rebase * Rebased on AggregationDataStore * clean up extra new lines * address comments * Builder pattern * update comments * remove projection in entity * fix jackson * Hydrate Relationship (#987) (#15) * Address some codecy comments * Add comment for partial query * Reenable tests * Address comments, refactor alias * Add test for alias * swapped test case * fix get type Added AggregationDataStore Code (#991) * Adding testing for aggregation data store * Debugging integration tests * Continuing testing work * AggregationDataStore * AggregationDataStore testing * Added more tests * Aggregation Data Store * Cleaned up testing code * Cleaned up code, fixed helper for AggregationDataStore * end * Fixed checkstyle, other minor fixes * fixed comment * Minor fixes * Fixed id type issue, added exception for queries with no metrics Fixed build (#993) Making TimeDimension an interface (#992) [maven-release-plugin] prepare release 5.0.0-pr1 [maven-release-plugin] prepare for next development iteration Renamed graphQL file to match test (#1002) [maven-release-plugin] prepare release 5.0.0-pr2 [maven-release-plugin] prepare for next development iteration Add JoinTo annotation (#1006) * Added JoinTo Annotation * Added working test * Added TODO comment for next PR * Added TODO comment for next PR * Added Sorting and Filtering support for JoinTo Columns * Fixed IT tests for Aggregation Data Store * Moved entityManager creation to happen separately for each query (#1008) * Moved entityManager creation to happen separately for each query * Closing EntityManager after each query * Inspection rework Column annotation (#1017) * Solved column issue and added QueryEngineFactory * Caching query engine in AggregationDataStore * Fixed column description * Update SQLQueryEngine.java (#1019) * Add SQLMetrix, rearrange packages (#1020) * Add SQLMetrix, rearrange packages * address comment Manager transacton manually (#1021) * Manager transacton manually * Add readonly Hydrate GraphQL Schema with parameterized attributes (#1018) * GraphQL schema expose expected argument name and its type for each attribute * Change empty arguments to unmodifable set AggregationStore: Add multiple time grain definitions to schema (#1022) * Fixed checkstyle warnings and errors. Separated the Query dimension interface from the Schema dimension interface * Added skeleton code to convert entity projection arguments into time grains * Cleanup * Class renames per inspection comments * Inspection comments Refactor time dimension logic (#1028) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception ISSUE-1026 Add support for @Subselect (#1038) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect * Address comments ISSUE-1027 Support join for having clause (#1039) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1027 Support join for having clause function name fixed to enableISO8601Dates (#1052) Support for multiple queries at root is added (#1044) * Support for multiple queries at root is added * Added test with alias * comments resolved Add time grain to GraphQL schema (#1042) * Added basic plumbing to push attributes from the entity projection down to the QueryEngine * Added logic to expand SQL time expression in SQLQueryEngine * Added SQLQueryEngine tests * Added IT tests * The AggregationStore now adds graphql parameters for parameterized columns * Minor refactor * Inspection rework * Minor fix Support multiple query of same entity with different alias (#1055) * Support multiple query of same entity with different alias * add static method to generate keyname for GraphQLProjectionInfo projections * Remove aliasPartialQuerySameAttribute MetadataStore Models (#1068) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * Metadatastore models * Address comments * address comments * move root * fix style check SQLQueryTemplate Model (#1073) * SQLQueryTemplate * SQLTables * refactor * update sql dimension projection * update sql dimension projection * clean up dimension projection * refactor sql components * aggregatable field rework * add comments * rearrange packages * Add dimension projection back * fix checkstyle * Add dictionary * Simplify MetricFunction and SQLQueryTemplate * Address comments Integrate Metadata Model and SQLQueryTemplate Model (#1083) * Integrate Metadata Model and SQLQueryTemplate Model * remove AggregationDictionary and AggregationManager * Add timezone * Can only query analyticView Fixed issues with rebase Add auto configuration for aggregation store (#1087) * Added autoconfiguration for QueryEngineFactory * Unified class scanning. Started cleaning up datastores so they only register the entities they manage * Full build passes * Minor cleanup * Minor refactoring * Added EntityManagerFactory bean configuratino * Refactored class scanning for Elide standalone * Updated spring boot starter pom * Removed @Entity from all metadata models. Started cleaning up entity dictionary entity registration * Broken implementation. Just checking in so I can revert if needed. * All tests pass * Added unit tests * Minor cleanup * One more fix * Fixed broken tests * Added package include support back * Class scanning for annotations ignores inherited * Added a test based on inspection comments * Inspection comment fix * Changed initalization of MetadataStore * More inspection rework * Turned back on OWASP scanning * More rework remove @Inherited (#1092) Support Non JPA Entity in AggregationDataStore (#1051) * Create AggregationDataStore module (#845) * Create AggregationDataStore module * Address Aaron's comments * Fix build failure AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Define QueryEngine Contract (#867) Fixed rebase on master SQL Query Engine (#878) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Added calcite as a dependency. Merged in changes for QueryEngine interface Fixed checkstyle issues Added basic H2 DB test harness Started breaking out projections Moved getValue and setValue from PersistentResource to EntityDictionary Added basic logic to hydrate entities Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration Minor cleanup Refactored HQLFilterOperation to take an alias generator Added test support for RSQL filter generation. Some cleanup Added basic support for WHERE clause filtering on the fact table Added working test for subquery SQL Added basic join logic for filters Added a test with a subquery and a filter join Refactored Schema classes and Query to support metric aggregation SQL expansion Added group by support Added logic for ID generation Added sorting logic and test Added pagination support and testing All column references use proper name now for SQL Removed calcite as a query engine Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton Added HAVING clause support Changed Query to take schema instead of entityClass First pass at cleanup Fixed checkstyles Cleanup Cleanup Added a complex SQL expression test and fixed bugs Fixed merge issues. Added another test. Added better logging Fixed bug in pagination SQL generation * Build is working * Inspection rework Add EntityProjection plumbing (#949) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * Removed duplicated Schema class from rebase * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup Hydrate Relationship (#987) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Added basic H2 DB test harness * Started breaking out projections * Moved getValue and setValue from PersistentResource to EntityDictionary * Added basic logic to hydrate entities * Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration * Refactored HQLFilterOperation to take an alias generator * Added test support for RSQL filter generation. Some cleanup * Added basic support for WHERE clause filtering on the fact table * Added working test for subquery SQL * Added basic join logic for filters * Added a test with a subquery and a filter join * Refactored Schema classes and Query to support metric aggregation SQL expansion * Added group by support * Added logic for ID generation * Added sorting logic and test * Added pagination support and testing * All column references use proper name now for SQL * Removed calcite as a query engine * Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton * Added HAVING clause support * Changed Query to take schema instead of entityClass * First pass at cleanup * Fixed checkstyles * Cleanup * Hydrate Relationship * Cleanup * Added a complex SQL expression test and fixed bugs * Fixed merge issues. Added another test. Added better logging * Self-review * Self-review * Self-review * Self-review * Self-review * Address comments from @aklish * Refactor EntityHydrator (#893) * rebase * keep Jiaqi's changes * fix id * fix maven verify * Remove HQLFilterOperation * fix dictionary * fix SqlEngineTest * remove unused part * make codacy happy * should use getParametrizedType * address comments Implement GraphQLEntityProjectionMaker (#986) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * GraphQL projection maker using document * Argument handling and fragment check * Add comments * Add fragment resolver * fix typo * break code into more methods * remove pagination and sorting * Removed duplicated Schema class from rebase * re-arrange keywords * Address comment * Add arguments for attribute fields * Handle arguments * support partial query, update edges/node logic * Entity projection with aliases * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * fix create relationship object using entity * Add tests passed * code clean up * refactor fatcher, fix test cases * rename keywords * rebase branch (#12) * rebased * Graphql projection refactor (#13) * fix fragment resolver * Fix variable resolver * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup * rebase * Rebased on AggregationDataStore * clean up extra new lines * address comments * Builder pattern * update comments * remove projection in entity * fix jackson * Hydrate Relationship (#987) (#15) * Address some codecy comments * Add comment for partial query * Reenable tests * Address comments, refactor alias * Add test for alias * swapped test case * fix get type Added AggregationDataStore Code (#991) * Adding testing for aggregation data store * Debugging integration tests * Continuing testing work * AggregationDataStore * AggregationDataStore testing * Added more tests * Aggregation Data Store * Cleaned up testing code * Cleaned up code, fixed helper for AggregationDataStore * end * Fixed checkstyle, other minor fixes * fixed comment * Minor fixes * Fixed id type issue, added exception for queries with no metrics Fixed build (#993) Making TimeDimension an interface (#992) * [maven-release-plugin] prepare release 5.0.0-pr1 * [maven-release-plugin] prepare for next development iteration * Renamed graphQL file to match test (#1002) * [maven-release-plugin] prepare release 5.0.0-pr2 * [maven-release-plugin] prepare for next development iteration * Add JoinTo annotation (#1006) * Added JoinTo Annotation * Added working test * Added TODO comment for next PR * Added TODO comment for next PR * Added Sorting and Filtering support for JoinTo Columns * Fixed IT tests for Aggregation Data Store * Moved entityManager creation to happen separately for each query (#1008) * Moved entityManager creation to happen separately for each query * Closing EntityManager after each query * Inspection rework * Column annotation (#1017) * Solved column issue and added QueryEngineFactory * Caching query engine in AggregationDataStore * Fixed column description * Update SQLQueryEngine.java (#1019) * Add SQLMetrix, rearrange packages (#1020) * Add SQLMetrix, rearrange packages * address comment * Manager transacton manually * Add readonly * Manager transacton manually (#1021) * Manager transacton manually * Add readonly * Hydrate GraphQL Schema with parameterized attributes (#1018) * GraphQL schema expose expected argument name and its type for each attribute * Change empty arguments to unmodifable set * AggregationStore: Add multiple time grain definitions to schema (#1022) * Fixed checkstyle warnings and errors. Separated the Query dimension interface from the Schema dimension interface * Added skeleton code to convert entity projection arguments into time grains * Cleanup * Class renames per inspection comments * Inspection comments * some rework * use getTimeDimension() * change exception * Refactor time dimension logic (#1028) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect (#1038) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect * Address comments * ISSUE-1027 Support join for having clause (#1039) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1027 Support join for having clause * View Design * Add tests and cleanup * rename annotation * function name fixed to enableISO8601Dates (#1052) * fix bugs * Support for multiple queries at root is added (#1044) * Support for multiple queries at root is added * Added test with alias * comments resolved * merge annotations * don't group by view relationship * Add time grain to GraphQL schema (#1042) * Added basic plumbing to push attributes from the entity projection down to the QueryEngine * Added logic to expand SQL time expression in SQLQueryEngine * Added SQLQueryEngine tests * Added IT tests * The AggregationStore now adds graphql parameters for parameterized columns * Minor refactor * Inspection rework * Minor fix * Support multiple query of same entity with different alias (#1055) * Support multiple query of same entity with different alias * add static method to generate keyname for GraphQLProjectionInfo projections * Remove aliasPartialQuerySameAttribute * MetadataStore Models (#1068) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * Metadatastore models * Address comments * address comments * move root * fix style check * SQLQueryTemplate Model (#1073) * SQLQueryTemplate * SQLTables * refactor * update sql dimension projection * update sql dimension projection * clean up dimension projection * refactor sql components * aggregatable field rework * add comments * rearrange packages * Add dimension projection back * fix checkstyle * Add dictionary * Simplify MetricFunction and SQLQueryTemplate * Address comments * Integrate Metadata Model and SQLQueryTemplate Model (#1083) * Integrate Metadata Model and SQLQueryTemplate Model * remove AggregationDictionary and AggregationManager * Add timezone * Can only query analyticView * integrate view with aggregation and metadata * remove includeField * remove @view * Use NonEntityDictionary * remove id * revert access changes * fix JPA entity check * remove @Entity from analyticViews * use table name as relationship type id * revert NonEntitydictinoary * tiny rework * Integration tests * Add jsonapi ittest * aggregation data store doesn't manage jpa entities * address comments fix integration dependencies (#1093) [maven-release-plugin] prepare release 5.0.0-pr3 [maven-release-plugin] prepare for next development iteration Fixed elide standalone pom from rebase Fixed minor bug in rebase Fixed rebase Improving class scanning performance for MetadataStore (#1117) Enable elide5 travis builds (#1129) * Move repeated @Sql annotations to class level (#1119) * Turning on travis builds with code coverage for Elide 5.x * Fixing security issue in spring-boot-web Co-authored-by: Brutus5000 <Brutus5000@gmx.net> Fix sorting and ambiguous join issue (#1127) * Added sorting on aggregated metric based on latest elide-5.x * Fix ambiguity problem * update comments * fix codacy * refactor generateColumnReference * update comment * address comments * test cleanup * update unittest * fix elide core alias * QueryValidatorTest * EntityProjectionTranslatorTest * go joinFragment approach * delete jointrienode Support no metric query (#1137) [maven-release-plugin] prepare release 5.0.0-pr4 [maven-release-plugin] prepare for next development iteration Check dependency injection (#1138) * Move repeated @Sql annotations to class level (#1119) * Fixing OWASP security warning for Tomcat dependency in Spring Web (#1132) * Adding support for dependency injection of Checks. Added test injection classes * Unit tests pass * Tests pass * Removed Initializer Concept Co-authored-by: Brutus5000 <Brutus5000@gmx.net> Fix travis log length (#1140) * Move repeated @Sql annotations to class level (#1119) * Fixing OWASP security warning for Tomcat dependency in Spring Web (#1132) * Removed unnecessary request/response logging (to shorten travis logs) * Address inspection comments * Address inspection comments * Address inspection comments * Removed logging of graphQL model building to shorten length * Fixed compilation error Co-authored-by: Brutus5000 <Brutus5000@gmx.net> [maven-release-plugin] prepare release 5.0.0-pr5 [maven-release-plugin] prepare for next development iteration Refactoring Elide Security Checks (#1144) Removed UpdateOnCreate. Refactored AuditLogger, Pagination, & Sorting (#1146) * Removed UpdateOnCreate. Refactored AuditLogger * Refactored Sorting * Refactored Pagination * Refactored Pagination * Pagination refactor builds and tests pass * Codacy fixes * Inspection rework * Fixes build * More inspection rework * Fix build Refactor share permission (#1154) * Refactored Sorting * Refactored Pagination * Refactored Pagination * Pagination refactor builds and tests pass * Codacy fixes * Refactored SharePermission to NonTransferable * Fixed build * Fixed startup bug * Fixed codacy and inspection comments * Update elide-core/src/main/java/com/yahoo/elide/core/EntityDictionary.java Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> * Inspection rework Co-authored-by: Jon Kilroy <jkilroy@gmail.com> metadata refactor (#1179) * metadata refactor * merge table and analyticView * fix reflection package * Make Table constrcut its own columns * table json type alias * add comment @Join and JoinPath add comment hide non-jpd entities in grpahql hide joins refactor hidden remove ant remove relationshp, update model (#1186) Rebased on master [maven-release-plugin] prepare release 5.0.0-pr6 [maven-release-plugin] prepare for next development iteration sourceColumn (#1196) * sourceColumn * address comment * change to sourcePath Cleaning up ElideSettings Added more test fixes Fixed a number of broken tests Build completes Fixed JSON-API Patch Response Fixed GraphQL errors. Added better errors for Forbidden Access Exception. Minor fix Added setId to EntityDictionary Initial version All test pass except for spring Build passes Adding checkstyle comments for classes Inspection comments Fixed checkstyle issues Change the way types are named in the GraphQL schema (#1215) * name utils * ready for review * fix: AggregationDataStoreIntegrationTest#testGraphQLSchema Label Resolver for Dimension Formula (#1208) * sql expression to dimension formula * Metric formula * Add unit tests * refacot formula references * fix comment * fix comment * resolve physical column * refactor dimensionFormula * cleanup * label resolver * cleanup * refactor * cleanup * move code * labelStore * labelStore 2 * remove generator * refactor metric formula * address comments * move symbol table into sql query engine * remove sourceColumn * update reference expression * visitor design * add comments * add unit join path test * fix timeDimensionProjection * fix null value number * address comments * fix codacy Co-authored-by: hchen04 <han.chen@oath.com> Fixing broken javadoc ColumnProjection Refactor (#1239) * unify projections * remove getFunction() * add table into query template Co-authored-by: hchen04 <han.chen@oath.com> Refactored metric SQL expansion to occur dynamically at query time ra… (#1270) * Refactored metric SQL expansion to occur dynamically at query time rather than statically during service initialization * Update elide-datastore/elide-datastore-aggregation/src/main/java/com/yahoo/elide/datastores/aggregation/queryengines/sql/query/SQLMetricProjection.java Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: Jon Kilroy <jkilroy@gmail.com> Remove path logic from aggregation store (#1271) * Extended query validation to ensure where clause and sorting clauses don't traverse relationships * Added error check for relationship traversal for Having clauses * Hacked up logic to remove reference Table resolve references that take a path * Minor refactoring * Removed logic to extend join path * Refactored column projections to use generics * Removed reference functions from MetricProjection base class * Refactored so that all SQL generation is done inside the ColumnProjection * Refactored so all projection happens through projections * Refactored column projection creation * Removed unnecessary code * Added templateQuery to arguments required to generate SQL in column projections * Fixed codacy issues Co-authored-by: Aaron Klish <klish@verizonmedia.com> Added InMemoryStore to list of datastores that run IT tests (#1225) Co-authored-by: Aaron Klish <klish@verizonmedia.com> Adding TimeDimensions to Table (#1273) Elide 5.x async (#1203) * Adding Async Entity Models Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async module and fixing parent pom version Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async service classes, security and cleanup services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Copyright License Header to Async module classes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Using new request scope for datastore transactions Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove thread sleep used in testing Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing additional issues based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding getter for AsyncQueryResult Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Reformatting. Co-authored-by: Abhino <abhino@gmail.com> * Adding mappedBy. Co-authored-by: Abhino <abhino@gmail.com> * Fixing several review comments - pom, lombok, thread exec Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacity errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving all the DB ORM logic to a utility class for Async Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove dependency on number of hosts, delete permission, separate method for interrupttime calculation Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Making cleaner a separate service. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted tabs. Co-authored-by: Abhino <abhino@gmail.com> * Updating order of modules. Co-authored-by: Abhino <abhino@gmail.com> * Adding cleanup sql. Co-authored-by: Abhino <abhino@gmail.com> * Adding delete logic. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Resolving build error. Co-authored-by: Abhino <abhino@gmail.com> * Changing AsyncDbUtil to use Functional Interface Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing sleep Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding functional interface logic for executeInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding debug statements for AsyncDbUtil Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Codacity errors, exception handling Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Async Entity Models Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async module and fixing parent pom version Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async service classes, security and cleanup services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Copyright License Header to Async module classes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Using new request scope for datastore transactions Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove thread sleep used in testing Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing additional issues based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding getter for AsyncQueryResult Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Reformatting. Co-authored-by: Abhino <abhino@gmail.com> * Adding mappedBy. Co-authored-by: Abhino <abhino@gmail.com> * Fixing several review comments - pom, lombok, thread exec Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacity errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving all the DB ORM logic to a utility class for Async Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove dependency on number of hosts, delete permission, separate method for interrupttime calculation Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Making cleaner a separate service. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted tabs. Co-authored-by: Abhino <abhino@gmail.com> * Updating order of modules. Co-authored-by: Abhino <abhino@gmail.com> * Adding cleanup sql. Co-authored-by: Abhino <abhino@gmail.com> * Adding delete logic. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Resolving build error. Co-authored-by: Abhino <abhino@gmail.com> * Changing AsyncDbUtil to use Functional Interface Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing sleep Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding functional interface logic for executeInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding debug statements for AsyncDbUtil Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Codacity errors, exception handling Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Rebased with elide-5.x and changed User principal logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Rebase Co-authored-by: Abhino <abhino@gmail.com> * Changing CleanerThread to use ExecuteInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing unused imports Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Delete Method changes Co-authored-by: Abhino <abhino@gmail.com> * Overriding hashCode and equals Co-authored-by: Abhino <abhino@gmail.com> * Overriding hashCode and equals Co-authored-by: Abhino <abhino@gmail.com> * Removing unused method Co-authored-by: Abhino <abhino@gmail.com> * Changing response logic for AsyncQuery Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding return to delete method * Resolving Review Comments Co-authored-by: Abhino <abhino@gmail.com> * Resolve some review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Changing the DAO contract and updating references to DAO Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing singletons and extra constructors, simplyfing logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding default constructor and setters for DefaultDAO Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacy error Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Changing Base to use correct obj Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Resolving review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Review comments Co-authored-by: Abhino <Abhino@gmail.com> * Elide 5.x elide-async integration in elide-standalone (#1205) * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Making AsyncQueryDAO configurable Co-authored-by: Abhino <abhino@gmail.com> * Making AsyncQueryDAO configurable Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: abhino <abhino@gmail.com> * Changing call to DefaultAsyncQueryDAO * Review comments Co-authored-by: Abhino <Abhino@gmail.com> Co-authored-by: Abhino <abhino@gmail.com> * Elide 5.x elide-async integration in elide-spring (#1204) * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Adding DAO configuration Co-authored-by: Abhino <abhino@gmail.com> * Checkstyle error Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Codacy Error Co-authored-by: Abhino <Abhino@gmail.com> * Changing include type to asyncQuery to avoid conflict Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Sync Co-authored-by: Abhino <Abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Executor Service Co-authored-by: Abhino <abhino@gmail.com> * Sync with Standalone Value * Changes to change UUID columns type as varchar(36) * Review Comments * Review Comments * Fix review comments Co-authored-by: Abhino <abhino@gmail.com> * Updating per review comments * Remove unused import * Removing status change to Queued * removing unused import * prepersist for status Co-authored-by: moizarafat <moiz.arafat@gmail.com> Co-authored-by: avijay <abhinav.vijaykumar@verizonmedia.com> Co-authored-by: moiz arafat <moiz.arafat@oath.com> Co-authored-by: Moiz Arafat <4307621+moizarafat@users.noreply.github.com> Co-authored-by: moizarafat <moiz.arafat@verizonmedia.com> Simplify life cycle hooks (#1224) * Initial version * Finished code. Starting to flesh out tests * Elide core compiles * Removed CRUDEvent.CrudAction * Added new test structure for LifeCycleTest * Fixed bug in Persistent Resource where relationship reads did not tigger a lifecycle event * Added several LifeCycle Tests * Added create test for persistent resource * Added Elide Persistent Resource Update Test * Added update with change spec test * Added Relationship Edit test * Added relationship test * Fixed checkstyle and compilation errors * Added remove from collection test * Added exception tests * Added delete test * Added read test * Fixed checkstyles * Elide core builds and tests pass * Fixed graphQL tests * Full build now passes * Removed old life cycle annotations * Minor cleanup * Fixed codacy issues * Update README.md Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: Jon Kilroy <jkilroy@gmail.com> Fixed elide-5.x build Fixed rebase issues Turning off retireJS for dependency check Better errors for missing IDs in Patch Extension Request. (#1278) (#1281) * Better errors for missing IDs in Patch Extension Request. (#1278) * Return a better error when handling invalid patch extension requests that are missing IDs * Added tests Co-authored-by: Aaron Klish <klish@verizonmedia.com> * Expect encoded response as array Co-authored-by: Aaron Klish <aklish@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: wcekan <wcekan@verizonmedia.com> [maven-release-plugin] prepare release 5.0.0-pr8 [maven-release-plugin] prepare for next development iteration Patch Extension Lifecycle tests (#1280) * Patch Extension Lifecycle tests * Missing check * Update error body Co-authored-by: wcekan <wcekan@verizonmedia.com> Add version support (#1295) * Initial non working version * More changes * Build passes * Expanded version param outside entity dictionary * Plumbed API version up through RequestScope * Plumbed API version up to controllers and endpoints * All code minus async written and working * Code complete * Build passes * All tests are passing * Changed aggregation store Table id to include version. Metadata will now surface table versions * Added a swagger IT test with API versions * Replace empty version string with constant. Fixed a few bugs in JSON-API parser * Added graphql type introspection test * Added graphql type introspection test * Added spring controller test. Fixed issue with version header parsing * Added spring controller test for graphql * Added swagger controller tests * Added more happy path versioned tests * Fixed bug in GraphQLIT * Added graphQL test for invalid API version * ADded invalid API version graphql controller test * Fixed checkstyles * Added standalone and patch extension tests * Fixed build errors and codacy errors Co-authored-by: Aaron Klish <klish@verizonmedia.com> Migrated spring controllers to use async (#1296) Co-authored-by: Aaron Klish <klish@verizonmedia.com> fixes for Async Models lifecycle hooks failing (#1294) * elide standalone fixes for lifecycle hooks failing * Manual Binding of lifecycle hooks * Manual binding of lifecycle in elide spring * Refactor * Review Comments * elide standalone fixes for lifecycle hooks failing * Manual Binding of lifecycle hooks * Manual binding of lifecycle in elide spring * Refactor * Review Comments * Rebase with 5.x Co-authored-by: moiz arafat <moiz.arafat@oath.com> Implement equals/hashCode and immutability where needed (#1297) * ColumnProjection must implement equals/hashCode * Use @Value for SQLTimeDimensionProjection * Use @Value for Argument * Use @Value for TimeDimensionGrain * Use @Value for TimeDimension * Make Column/Metric immutable * Table can be immutable * Use @Value to simplify Query Changes elide to only inject models annotated with @Inject (#1299) * Changes elide to only inject models annotated with @Inject * Codacy fix Co-authored-by: Aaron Klish <klish@verizonmedia.com> Enhancemnents to Aggregation Store (#1300) Co-authored-by: moiz arafat <moiz.arafat@oath.com> QueryEngine result cache (#1279) * Add QueryEngine cache API * Remove outdated javadoc text Elide Async Feature Unit and Integration Tests (#1311) * Added integration,unit test setup for Async Module with few tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Licence headers, Sample entity and working Async test for POST,GET Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding additional integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding remaining integration tests and updating javadocs Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding all unit tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating tests to work with Singleton changes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Modifying tests to work with singleton logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Resolving some codacy errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding DSL for GraphQL and addressing review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing unit tests and checkstyle errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving tests to new format Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing session not closed error and checkstyle errors * Fixing imports Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing unused method and updating harness Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating unit tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating ResourceConfig for AsyncTest Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving logic for resource config to new test binder Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding bindFactory logic for async services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing IT * Fixing IT Co-authored-by: Abhino <abhino@gmail.com> * Adding Remaining integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Consolidating filter logic for integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing legacy Hibernate entity manager store (so it doesn't recycle the entity manager * Adding additional integration tests for Standalone and Spring boot Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacy errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Review Comments Co-authored-by: abhino <abhino@gmail.com> Co-authored-by: avijay <abhinav.vijaykumar@verizonmedia.com> Co-authored-by: moizarafat <moiz.arafat@gmail.com> Co-authored-by: moiz arafat <moiz.arafat@oath.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> in memory compilation integrated with dynamic config helpers (#1255) * Rebase against 5.x Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * pom fix Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * pom fix Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Merging 1220 Co-authored-by: rishi-aga <rishi.aga123@gmail.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Review Comments Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Update DynamicConfigTest.java * Review Comments Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> Co-authored-by: rishi-aga <rishi.aga123@gmail.com> * Fixed issues with rebase * Finished rebase * Async ID change from UUID to String and Dynamic Config FIx (#1325) * Async UUID to String, Dynamic Config NPE * Update DefaultAsyncQueryDAOTest.java * TANDS-19093-transactionRegistry-interface (#1332) * TANDS-19093-transactionRegistry-interface * TANDS-19093-transactionRegistry-interface * TANDS-19093-transactionRegistry-interface * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs Co-authored-by: Ramsha Rao <ramsha.rao@verizonmedia.com> * add requestId (#1331) Co-authored-by: aaggarwal <ashish.aggarwal@oath.com> * [maven-release-plugin] prepare release 5.0.0-pr9 * [maven-release-plugin] prepare for next development iteration * Introduce QueryResult class for QueryEngine caching (#1333) * Make QueryEngine cache bypass flag part of Query * Forming the cache key is not free, so don't a use stub cache * Add QueryResult class * Add pageTotals to QueryResult * Pass page totals through QueryResult instead of Pagination * Codacy doesn't know @Value makes fields private * remove missing javadoc warnings (#1337) Co-authored-by: Chandrasekar Rajasekar <chandrasekar.rajasekar@oath.com> * Elide 5.x dynamic config standalone (#1259) * Fix method call, Swagger Doc Update Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Swagger doc update Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * update pom.xml Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * update pom.xml Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * review comments Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Update ElideStandaloneSettings.java * Update pom.xml * Update pom.xml Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> * addTransaction-removeTransaction (#1338) * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169-changing-CVSS-score * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * making DataStore an abstract class * making DataStore an abstract class * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * addressing comments * addressing comments * addressing comments * fixing bugs Co-authored-by: Ramsha Rao <ramsha.rao@verizonmedia.com> * Fixed rebase * Removed old elide example modules * [maven-release-plugin] prepare release 5.0.0-pr10 * [maven-release-plugin] prepare for next development iteration * Validation for Model Configs (#1306) * Dynamic Config Validator Co-authored-by: rishi-aga <rishi.aga123@gmail.com> * Review Comments * Review Comments * Use DynamicConfigValidator instead of ElideConfigParser Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> * add explicit join (#1364) Co-authored-by: Chandrasekar Rajasekar <chandrasekar.rajasekar@oath.com> * Fixes - Honor Doc Version in SwaggerController and Use ISO8601Dates Serde Format in Date Formatting (#1336) * misc_fixes * review comments * Review Comments * DyFixes * DyFixes * Elide dynamic config model verification (#1354) * sign & Verify model * review comments * typo fix * indent fix * review comment * additional testcases * revert system exit * fix codacy * add return * add system exit Co-authored-…
aklish
pushed a commit
that referenced
this pull request
Sep 22, 2020
* Make QueryEngine cache bypass flag part of Query * Forming the cache key is not free, so don't a use stub cache * Add QueryResult class * Add pageTotals to QueryResult * Pass page totals through QueryResult instead of Pagination * Codacy doesn't know @value makes fields private
aklish
added a commit
that referenced
this pull request
Sep 22, 2020
* parent a14ccfbb7b558d27799b4e7b1916850519639708 author Jack (정환) <QubitPi@users.noreply.github.com> 1559678988 -0700 committer Aaron Klish <klish@verizonmedia.com> 1589583449 -0500 Create AggregationDataStore module (#845) * Create AggregationDataStore module * Address Aaron's comments * Fix build failure AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Define QueryEngine Contract (#867) Fixed rebase on master SQL Query Engine (#878) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Added calcite as a dependency. Merged in changes for QueryEngine interface Fixed checkstyle issues Added basic H2 DB test harness Started breaking out projections Moved getValue and setValue from PersistentResource to EntityDictionary Added basic logic to hydrate entities Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration Minor cleanup Refactored HQLFilterOperation to take an alias generator Added test support for RSQL filter generation. Some cleanup Added basic support for WHERE clause filtering on the fact table Added working test for subquery SQL Added basic join logic for filters Added a test with a subquery and a filter join Refactored Schema classes and Query to support metric aggregation SQL expansion Added group by support Added logic for ID generation Added sorting logic and test Added pagination support and testing All column references use proper name now for SQL Removed calcite as a query engine Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton Added HAVING clause support Changed Query to take schema instead of entityClass First pass at cleanup Fixed checkstyles Cleanup Cleanup Added a complex SQL expression test and fixed bugs Fixed merge issues. Added another test. Added better logging Fixed bug in pagination SQL generation * Build is working * Inspection rework Add EntityProjection plumbing (#949) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * Removed duplicated Schema class from rebase * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup Hydrate Relationship (#987) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Added basic H2 DB test harness * Started breaking out projections * Moved getValue and setValue from PersistentResource to EntityDictionary * Added basic logic to hydrate entities * Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration * Refactored HQLFilterOperation to take an alias generator * Added test support for RSQL filter generation. Some cleanup * Added basic support for WHERE clause filtering on the fact table * Added working test for subquery SQL * Added basic join logic for filters * Added a test with a subquery and a filter join * Refactored Schema classes and Query to support metric aggregation SQL expansion * Added group by support * Added logic for ID generation * Added sorting logic and test * Added pagination support and testing * All column references use proper name now for SQL * Removed calcite as a query engine * Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton * Added HAVING clause support * Changed Query to take schema instead of entityClass * First pass at cleanup * Fixed checkstyles * Cleanup * Hydrate Relationship * Cleanup * Added a complex SQL expression test and fixed bugs * Fixed merge issues. Added another test. Added better logging * Self-review * Self-review * Self-review * Self-review * Self-review * Address comments from @aklish * Refactor EntityHydrator (#893) * rebase * keep Jiaqi's changes * fix id * fix maven verify * Remove HQLFilterOperation * fix dictionary * fix SqlEngineTest * remove unused part * make codacy happy * should use getParametrizedType * address comments Implement GraphQLEntityProjectionMaker (#986) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * GraphQL projection maker using document * Argument handling and fragment check * Add comments * Add fragment resolver * fix typo * break code into more methods * remove pagination and sorting * Removed duplicated Schema class from rebase * re-arrange keywords * Address comment * Add arguments for attribute fields * Handle arguments * support partial query, update edges/node logic * Entity projection with aliases * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * fix create relationship object using entity * Add tests passed * code clean up * refactor fatcher, fix test cases * rename keywords * rebase branch (#12) * rebased * Graphql projection refactor (#13) * fix fragment resolver * Fix variable resolver * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup * rebase * Rebased on AggregationDataStore * clean up extra new lines * address comments * Builder pattern * update comments * remove projection in entity * fix jackson * Hydrate Relationship (#987) (#15) * Address some codecy comments * Add comment for partial query * Reenable tests * Address comments, refactor alias * Add test for alias * swapped test case * fix get type Added AggregationDataStore Code (#991) * Adding testing for aggregation data store * Debugging integration tests * Continuing testing work * AggregationDataStore * AggregationDataStore testing * Added more tests * Aggregation Data Store * Cleaned up testing code * Cleaned up code, fixed helper for AggregationDataStore * end * Fixed checkstyle, other minor fixes * fixed comment * Minor fixes * Fixed id type issue, added exception for queries with no metrics Fixed build (#993) Making TimeDimension an interface (#992) [maven-release-plugin] prepare release 5.0.0-pr1 [maven-release-plugin] prepare for next development iteration Renamed graphQL file to match test (#1002) [maven-release-plugin] prepare release 5.0.0-pr2 [maven-release-plugin] prepare for next development iteration Add JoinTo annotation (#1006) * Added JoinTo Annotation * Added working test * Added TODO comment for next PR * Added TODO comment for next PR * Added Sorting and Filtering support for JoinTo Columns * Fixed IT tests for Aggregation Data Store * Moved entityManager creation to happen separately for each query (#1008) * Moved entityManager creation to happen separately for each query * Closing EntityManager after each query * Inspection rework Column annotation (#1017) * Solved column issue and added QueryEngineFactory * Caching query engine in AggregationDataStore * Fixed column description * Update SQLQueryEngine.java (#1019) * Add SQLMetrix, rearrange packages (#1020) * Add SQLMetrix, rearrange packages * address comment Manager transacton manually (#1021) * Manager transacton manually * Add readonly Hydrate GraphQL Schema with parameterized attributes (#1018) * GraphQL schema expose expected argument name and its type for each attribute * Change empty arguments to unmodifable set AggregationStore: Add multiple time grain definitions to schema (#1022) * Fixed checkstyle warnings and errors. Separated the Query dimension interface from the Schema dimension interface * Added skeleton code to convert entity projection arguments into time grains * Cleanup * Class renames per inspection comments * Inspection comments Refactor time dimension logic (#1028) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception ISSUE-1026 Add support for @Subselect (#1038) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect * Address comments ISSUE-1027 Support join for having clause (#1039) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1027 Support join for having clause function name fixed to enableISO8601Dates (#1052) Support for multiple queries at root is added (#1044) * Support for multiple queries at root is added * Added test with alias * comments resolved Add time grain to GraphQL schema (#1042) * Added basic plumbing to push attributes from the entity projection down to the QueryEngine * Added logic to expand SQL time expression in SQLQueryEngine * Added SQLQueryEngine tests * Added IT tests * The AggregationStore now adds graphql parameters for parameterized columns * Minor refactor * Inspection rework * Minor fix Support multiple query of same entity with different alias (#1055) * Support multiple query of same entity with different alias * add static method to generate keyname for GraphQLProjectionInfo projections * Remove aliasPartialQuerySameAttribute MetadataStore Models (#1068) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * Metadatastore models * Address comments * address comments * move root * fix style check SQLQueryTemplate Model (#1073) * SQLQueryTemplate * SQLTables * refactor * update sql dimension projection * update sql dimension projection * clean up dimension projection * refactor sql components * aggregatable field rework * add comments * rearrange packages * Add dimension projection back * fix checkstyle * Add dictionary * Simplify MetricFunction and SQLQueryTemplate * Address comments Integrate Metadata Model and SQLQueryTemplate Model (#1083) * Integrate Metadata Model and SQLQueryTemplate Model * remove AggregationDictionary and AggregationManager * Add timezone * Can only query analyticView Fixed issues with rebase Add auto configuration for aggregation store (#1087) * Added autoconfiguration for QueryEngineFactory * Unified class scanning. Started cleaning up datastores so they only register the entities they manage * Full build passes * Minor cleanup * Minor refactoring * Added EntityManagerFactory bean configuratino * Refactored class scanning for Elide standalone * Updated spring boot starter pom * Removed @Entity from all metadata models. Started cleaning up entity dictionary entity registration * Broken implementation. Just checking in so I can revert if needed. * All tests pass * Added unit tests * Minor cleanup * One more fix * Fixed broken tests * Added package include support back * Class scanning for annotations ignores inherited * Added a test based on inspection comments * Inspection comment fix * Changed initalization of MetadataStore * More inspection rework * Turned back on OWASP scanning * More rework remove @Inherited (#1092) Support Non JPA Entity in AggregationDataStore (#1051) * Create AggregationDataStore module (#845) * Create AggregationDataStore module * Address Aaron's comments * Fix build failure AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Define QueryEngine Contract (#867) Fixed rebase on master SQL Query Engine (#878) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Added calcite as a dependency. Merged in changes for QueryEngine interface Fixed checkstyle issues Added basic H2 DB test harness Started breaking out projections Moved getValue and setValue from PersistentResource to EntityDictionary Added basic logic to hydrate entities Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration Minor cleanup Refactored HQLFilterOperation to take an alias generator Added test support for RSQL filter generation. Some cleanup Added basic support for WHERE clause filtering on the fact table Added working test for subquery SQL Added basic join logic for filters Added a test with a subquery and a filter join Refactored Schema classes and Query to support metric aggregation SQL expansion Added group by support Added logic for ID generation Added sorting logic and test Added pagination support and testing All column references use proper name now for SQL Removed calcite as a query engine Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton Added HAVING clause support Changed Query to take schema instead of entityClass First pass at cleanup Fixed checkstyles Cleanup Cleanup Added a complex SQL expression test and fixed bugs Fixed merge issues. Added another test. Added better logging Fixed bug in pagination SQL generation * Build is working * Inspection rework Add EntityProjection plumbing (#949) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * Removed duplicated Schema class from rebase * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup Hydrate Relationship (#987) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Added basic H2 DB test harness * Started breaking out projections * Moved getValue and setValue from PersistentResource to EntityDictionary * Added basic logic to hydrate entities * Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration * Refactored HQLFilterOperation to take an alias generator * Added test support for RSQL filter generation. Some cleanup * Added basic support for WHERE clause filtering on the fact table * Added working test for subquery SQL * Added basic join logic for filters * Added a test with a subquery and a filter join * Refactored Schema classes and Query to support metric aggregation SQL expansion * Added group by support * Added logic for ID generation * Added sorting logic and test * Added pagination support and testing * All column references use proper name now for SQL * Removed calcite as a query engine * Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton * Added HAVING clause support * Changed Query to take schema instead of entityClass * First pass at cleanup * Fixed checkstyles * Cleanup * Hydrate Relationship * Cleanup * Added a complex SQL expression test and fixed bugs * Fixed merge issues. Added another test. Added better logging * Self-review * Self-review * Self-review * Self-review * Self-review * Address comments from @aklish * Refactor EntityHydrator (#893) * rebase * keep Jiaqi's changes * fix id * fix maven verify * Remove HQLFilterOperation * fix dictionary * fix SqlEngineTest * remove unused part * make codacy happy * should use getParametrizedType * address comments Implement GraphQLEntityProjectionMaker (#986) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * GraphQL projection maker using document * Argument handling and fragment check * Add comments * Add fragment resolver * fix typo * break code into more methods * remove pagination and sorting * Removed duplicated Schema class from rebase * re-arrange keywords * Address comment * Add arguments for attribute fields * Handle arguments * support partial query, update edges/node logic * Entity projection with aliases * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * fix create relationship object using entity * Add tests passed * code clean up * refactor fatcher, fix test cases * rename keywords * rebase branch (#12) * rebased * Graphql projection refactor (#13) * fix fragment resolver * Fix variable resolver * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup * rebase * Rebased on AggregationDataStore * clean up extra new lines * address comments * Builder pattern * update comments * remove projection in entity * fix jackson * Hydrate Relationship (#987) (#15) * Address some codecy comments * Add comment for partial query * Reenable tests * Address comments, refactor alias * Add test for alias * swapped test case * fix get type Added AggregationDataStore Code (#991) * Adding testing for aggregation data store * Debugging integration tests * Continuing testing work * AggregationDataStore * AggregationDataStore testing * Added more tests * Aggregation Data Store * Cleaned up testing code * Cleaned up code, fixed helper for AggregationDataStore * end * Fixed checkstyle, other minor fixes * fixed comment * Minor fixes * Fixed id type issue, added exception for queries with no metrics Fixed build (#993) Making TimeDimension an interface (#992) * [maven-release-plugin] prepare release 5.0.0-pr1 * [maven-release-plugin] prepare for next development iteration * Renamed graphQL file to match test (#1002) * [maven-release-plugin] prepare release 5.0.0-pr2 * [maven-release-plugin] prepare for next development iteration * Add JoinTo annotation (#1006) * Added JoinTo Annotation * Added working test * Added TODO comment for next PR * Added TODO comment for next PR * Added Sorting and Filtering support for JoinTo Columns * Fixed IT tests for Aggregation Data Store * Moved entityManager creation to happen separately for each query (#1008) * Moved entityManager creation to happen separately for each query * Closing EntityManager after each query * Inspection rework * Column annotation (#1017) * Solved column issue and added QueryEngineFactory * Caching query engine in AggregationDataStore * Fixed column description * Update SQLQueryEngine.java (#1019) * Add SQLMetrix, rearrange packages (#1020) * Add SQLMetrix, rearrange packages * address comment * Manager transacton manually * Add readonly * Manager transacton manually (#1021) * Manager transacton manually * Add readonly * Hydrate GraphQL Schema with parameterized attributes (#1018) * GraphQL schema expose expected argument name and its type for each attribute * Change empty arguments to unmodifable set * AggregationStore: Add multiple time grain definitions to schema (#1022) * Fixed checkstyle warnings and errors. Separated the Query dimension interface from the Schema dimension interface * Added skeleton code to convert entity projection arguments into time grains * Cleanup * Class renames per inspection comments * Inspection comments * some rework * use getTimeDimension() * change exception * Refactor time dimension logic (#1028) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect (#1038) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect * Address comments * ISSUE-1027 Support join for having clause (#1039) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1027 Support join for having clause * View Design * Add tests and cleanup * rename annotation * function name fixed to enableISO8601Dates (#1052) * fix bugs * Support for multiple queries at root is added (#1044) * Support for multiple queries at root is added * Added test with alias * comments resolved * merge annotations * don't group by view relationship * Add time grain to GraphQL schema (#1042) * Added basic plumbing to push attributes from the entity projection down to the QueryEngine * Added logic to expand SQL time expression in SQLQueryEngine * Added SQLQueryEngine tests * Added IT tests * The AggregationStore now adds graphql parameters for parameterized columns * Minor refactor * Inspection rework * Minor fix * Support multiple query of same entity with different alias (#1055) * Support multiple query of same entity with different alias * add static method to generate keyname for GraphQLProjectionInfo projections * Remove aliasPartialQuerySameAttribute * MetadataStore Models (#1068) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * Metadatastore models * Address comments * address comments * move root * fix style check * SQLQueryTemplate Model (#1073) * SQLQueryTemplate * SQLTables * refactor * update sql dimension projection * update sql dimension projection * clean up dimension projection * refactor sql components * aggregatable field rework * add comments * rearrange packages * Add dimension projection back * fix checkstyle * Add dictionary * Simplify MetricFunction and SQLQueryTemplate * Address comments * Integrate Metadata Model and SQLQueryTemplate Model (#1083) * Integrate Metadata Model and SQLQueryTemplate Model * remove AggregationDictionary and AggregationManager * Add timezone * Can only query analyticView * integrate view with aggregation and metadata * remove includeField * remove @view * Use NonEntityDictionary * remove id * revert access changes * fix JPA entity check * remove @Entity from analyticViews * use table name as relationship type id * revert NonEntitydictinoary * tiny rework * Integration tests * Add jsonapi ittest * aggregation data store doesn't manage jpa entities * address comments fix integration dependencies (#1093) [maven-release-plugin] prepare release 5.0.0-pr3 [maven-release-plugin] prepare for next development iteration Fixed elide standalone pom from rebase Fixed minor bug in rebase Fixed rebase Improving class scanning performance for MetadataStore (#1117) Enable elide5 travis builds (#1129) * Move repeated @Sql annotations to class level (#1119) * Turning on travis builds with code coverage for Elide 5.x * Fixing security issue in spring-boot-web Co-authored-by: Brutus5000 <Brutus5000@gmx.net> Fix sorting and ambiguous join issue (#1127) * Added sorting on aggregated metric based on latest elide-5.x * Fix ambiguity problem * update comments * fix codacy * refactor generateColumnReference * update comment * address comments * test cleanup * update unittest * fix elide core alias * QueryValidatorTest * EntityProjectionTranslatorTest * go joinFragment approach * delete jointrienode Support no metric query (#1137) [maven-release-plugin] prepare release 5.0.0-pr4 [maven-release-plugin] prepare for next development iteration Check dependency injection (#1138) * Move repeated @Sql annotations to class level (#1119) * Fixing OWASP security warning for Tomcat dependency in Spring Web (#1132) * Adding support for dependency injection of Checks. Added test injection classes * Unit tests pass * Tests pass * Removed Initializer Concept Co-authored-by: Brutus5000 <Brutus5000@gmx.net> Fix travis log length (#1140) * Move repeated @Sql annotations to class level (#1119) * Fixing OWASP security warning for Tomcat dependency in Spring Web (#1132) * Removed unnecessary request/response logging (to shorten travis logs) * Address inspection comments * Address inspection comments * Address inspection comments * Removed logging of graphQL model building to shorten length * Fixed compilation error Co-authored-by: Brutus5000 <Brutus5000@gmx.net> [maven-release-plugin] prepare release 5.0.0-pr5 [maven-release-plugin] prepare for next development iteration Refactoring Elide Security Checks (#1144) Removed UpdateOnCreate. Refactored AuditLogger, Pagination, & Sorting (#1146) * Removed UpdateOnCreate. Refactored AuditLogger * Refactored Sorting * Refactored Pagination * Refactored Pagination * Pagination refactor builds and tests pass * Codacy fixes * Inspection rework * Fixes build * More inspection rework * Fix build Refactor share permission (#1154) * Refactored Sorting * Refactored Pagination * Refactored Pagination * Pagination refactor builds and tests pass * Codacy fixes * Refactored SharePermission to NonTransferable * Fixed build * Fixed startup bug * Fixed codacy and inspection comments * Update elide-core/src/main/java/com/yahoo/elide/core/EntityDictionary.java Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> * Inspection rework Co-authored-by: Jon Kilroy <jkilroy@gmail.com> metadata refactor (#1179) * metadata refactor * merge table and analyticView * fix reflection package * Make Table constrcut its own columns * table json type alias * add comment @Join and JoinPath add comment hide non-jpd entities in grpahql hide joins refactor hidden remove ant remove relationshp, update model (#1186) Rebased on master [maven-release-plugin] prepare release 5.0.0-pr6 [maven-release-plugin] prepare for next development iteration sourceColumn (#1196) * sourceColumn * address comment * change to sourcePath Cleaning up ElideSettings Added more test fixes Fixed a number of broken tests Build completes Fixed JSON-API Patch Response Fixed GraphQL errors. Added better errors for Forbidden Access Exception. Minor fix Added setId to EntityDictionary Initial version All test pass except for spring Build passes Adding checkstyle comments for classes Inspection comments Fixed checkstyle issues Change the way types are named in the GraphQL schema (#1215) * name utils * ready for review * fix: AggregationDataStoreIntegrationTest#testGraphQLSchema Label Resolver for Dimension Formula (#1208) * sql expression to dimension formula * Metric formula * Add unit tests * refacot formula references * fix comment * fix comment * resolve physical column * refactor dimensionFormula * cleanup * label resolver * cleanup * refactor * cleanup * move code * labelStore * labelStore 2 * remove generator * refactor metric formula * address comments * move symbol table into sql query engine * remove sourceColumn * update reference expression * visitor design * add comments * add unit join path test * fix timeDimensionProjection * fix null value number * address comments * fix codacy Co-authored-by: hchen04 <han.chen@oath.com> Fixing broken javadoc ColumnProjection Refactor (#1239) * unify projections * remove getFunction() * add table into query template Co-authored-by: hchen04 <han.chen@oath.com> Refactored metric SQL expansion to occur dynamically at query time ra… (#1270) * Refactored metric SQL expansion to occur dynamically at query time rather than statically during service initialization * Update elide-datastore/elide-datastore-aggregation/src/main/java/com/yahoo/elide/datastores/aggregation/queryengines/sql/query/SQLMetricProjection.java Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: Jon Kilroy <jkilroy@gmail.com> Remove path logic from aggregation store (#1271) * Extended query validation to ensure where clause and sorting clauses don't traverse relationships * Added error check for relationship traversal for Having clauses * Hacked up logic to remove reference Table resolve references that take a path * Minor refactoring * Removed logic to extend join path * Refactored column projections to use generics * Removed reference functions from MetricProjection base class * Refactored so that all SQL generation is done inside the ColumnProjection * Refactored so all projection happens through projections * Refactored column projection creation * Removed unnecessary code * Added templateQuery to arguments required to generate SQL in column projections * Fixed codacy issues Co-authored-by: Aaron Klish <klish@verizonmedia.com> Added InMemoryStore to list of datastores that run IT tests (#1225) Co-authored-by: Aaron Klish <klish@verizonmedia.com> Adding TimeDimensions to Table (#1273) Elide 5.x async (#1203) * Adding Async Entity Models Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async module and fixing parent pom version Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async service classes, security and cleanup services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Copyright License Header to Async module classes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Using new request scope for datastore transactions Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove thread sleep used in testing Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing additional issues based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding getter for AsyncQueryResult Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Reformatting. Co-authored-by: Abhino <abhino@gmail.com> * Adding mappedBy. Co-authored-by: Abhino <abhino@gmail.com> * Fixing several review comments - pom, lombok, thread exec Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacity errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving all the DB ORM logic to a utility class for Async Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove dependency on number of hosts, delete permission, separate method for interrupttime calculation Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Making cleaner a separate service. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted tabs. Co-authored-by: Abhino <abhino@gmail.com> * Updating order of modules. Co-authored-by: Abhino <abhino@gmail.com> * Adding cleanup sql. Co-authored-by: Abhino <abhino@gmail.com> * Adding delete logic. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Resolving build error. Co-authored-by: Abhino <abhino@gmail.com> * Changing AsyncDbUtil to use Functional Interface Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing sleep Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding functional interface logic for executeInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding debug statements for AsyncDbUtil Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Codacity errors, exception handling Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Async Entity Models Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async module and fixing parent pom version Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async service classes, security and cleanup services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Copyright License Header to Async module classes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Using new request scope for datastore transactions Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove thread sleep used in testing Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing additional issues based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding getter for AsyncQueryResult Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Reformatting. Co-authored-by: Abhino <abhino@gmail.com> * Adding mappedBy. Co-authored-by: Abhino <abhino@gmail.com> * Fixing several review comments - pom, lombok, thread exec Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacity errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving all the DB ORM logic to a utility class for Async Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove dependency on number of hosts, delete permission, separate method for interrupttime calculation Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Making cleaner a separate service. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted tabs. Co-authored-by: Abhino <abhino@gmail.com> * Updating order of modules. Co-authored-by: Abhino <abhino@gmail.com> * Adding cleanup sql. Co-authored-by: Abhino <abhino@gmail.com> * Adding delete logic. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Resolving build error. Co-authored-by: Abhino <abhino@gmail.com> * Changing AsyncDbUtil to use Functional Interface Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing sleep Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding functional interface logic for executeInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding debug statements for AsyncDbUtil Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Codacity errors, exception handling Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Rebased with elide-5.x and changed User principal logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Rebase Co-authored-by: Abhino <abhino@gmail.com> * Changing CleanerThread to use ExecuteInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing unused imports Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Delete Method changes Co-authored-by: Abhino <abhino@gmail.com> * Overriding hashCode and equals Co-authored-by: Abhino <abhino@gmail.com> * Overriding hashCode and equals Co-authored-by: Abhino <abhino@gmail.com> * Removing unused method Co-authored-by: Abhino <abhino@gmail.com> * Changing response logic for AsyncQuery Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding return to delete method * Resolving Review Comments Co-authored-by: Abhino <abhino@gmail.com> * Resolve some review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Changing the DAO contract and updating references to DAO Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing singletons and extra constructors, simplyfing logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding default constructor and setters for DefaultDAO Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacy error Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Changing Base to use correct obj Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Resolving review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Review comments Co-authored-by: Abhino <Abhino@gmail.com> * Elide 5.x elide-async integration in elide-standalone (#1205) * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Making AsyncQueryDAO configurable Co-authored-by: Abhino <abhino@gmail.com> * Making AsyncQueryDAO configurable Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: abhino <abhino@gmail.com> * Changing call to DefaultAsyncQueryDAO * Review comments Co-authored-by: Abhino <Abhino@gmail.com> Co-authored-by: Abhino <abhino@gmail.com> * Elide 5.x elide-async integration in elide-spring (#1204) * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Adding DAO configuration Co-authored-by: Abhino <abhino@gmail.com> * Checkstyle error Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Codacy Error Co-authored-by: Abhino <Abhino@gmail.com> * Changing include type to asyncQuery to avoid conflict Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Sync Co-authored-by: Abhino <Abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Executor Service Co-authored-by: Abhino <abhino@gmail.com> * Sync with Standalone Value * Changes to change UUID columns type as varchar(36) * Review Comments * Review Comments * Fix review comments Co-authored-by: Abhino <abhino@gmail.com> * Updating per review comments * Remove unused import * Removing status change to Queued * removing unused import * prepersist for status Co-authored-by: moizarafat <moiz.arafat@gmail.com> Co-authored-by: avijay <abhinav.vijaykumar@verizonmedia.com> Co-authored-by: moiz arafat <moiz.arafat@oath.com> Co-authored-by: Moiz Arafat <4307621+moizarafat@users.noreply.github.com> Co-authored-by: moizarafat <moiz.arafat@verizonmedia.com> Simplify life cycle hooks (#1224) * Initial version * Finished code. Starting to flesh out tests * Elide core compiles * Removed CRUDEvent.CrudAction * Added new test structure for LifeCycleTest * Fixed bug in Persistent Resource where relationship reads did not tigger a lifecycle event * Added several LifeCycle Tests * Added create test for persistent resource * Added Elide Persistent Resource Update Test * Added update with change spec test * Added Relationship Edit test * Added relationship test * Fixed checkstyle and compilation errors * Added remove from collection test * Added exception tests * Added delete test * Added read test * Fixed checkstyles * Elide core builds and tests pass * Fixed graphQL tests * Full build now passes * Removed old life cycle annotations * Minor cleanup * Fixed codacy issues * Update README.md Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: Jon Kilroy <jkilroy@gmail.com> Fixed elide-5.x build Fixed rebase issues Turning off retireJS for dependency check Better errors for missing IDs in Patch Extension Request. (#1278) (#1281) * Better errors for missing IDs in Patch Extension Request. (#1278) * Return a better error when handling invalid patch extension requests that are missing IDs * Added tests Co-authored-by: Aaron Klish <klish@verizonmedia.com> * Expect encoded response as array Co-authored-by: Aaron Klish <aklish@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: wcekan <wcekan@verizonmedia.com> [maven-release-plugin] prepare release 5.0.0-pr8 [maven-release-plugin] prepare for next development iteration Patch Extension Lifecycle tests (#1280) * Patch Extension Lifecycle tests * Missing check * Update error body Co-authored-by: wcekan <wcekan@verizonmedia.com> Add version support (#1295) * Initial non working version * More changes * Build passes * Expanded version param outside entity dictionary * Plumbed API version up through RequestScope * Plumbed API version up to controllers and endpoints * All code minus async written and working * Code complete * Build passes * All tests are passing * Changed aggregation store Table id to include version. Metadata will now surface table versions * Added a swagger IT test with API versions * Replace empty version string with constant. Fixed a few bugs in JSON-API parser * Added graphql type introspection test * Added graphql type introspection test * Added spring controller test. Fixed issue with version header parsing * Added spring controller test for graphql * Added swagger controller tests * Added more happy path versioned tests * Fixed bug in GraphQLIT * Added graphQL test for invalid API version * ADded invalid API version graphql controller test * Fixed checkstyles * Added standalone and patch extension tests * Fixed build errors and codacy errors Co-authored-by: Aaron Klish <klish@verizonmedia.com> Migrated spring controllers to use async (#1296) Co-authored-by: Aaron Klish <klish@verizonmedia.com> fixes for Async Models lifecycle hooks failing (#1294) * elide standalone fixes for lifecycle hooks failing * Manual Binding of lifecycle hooks * Manual binding of lifecycle in elide spring * Refactor * Review Comments * elide standalone fixes for lifecycle hooks failing * Manual Binding of lifecycle hooks * Manual binding of lifecycle in elide spring * Refactor * Review Comments * Rebase with 5.x Co-authored-by: moiz arafat <moiz.arafat@oath.com> Implement equals/hashCode and immutability where needed (#1297) * ColumnProjection must implement equals/hashCode * Use @Value for SQLTimeDimensionProjection * Use @Value for Argument * Use @Value for TimeDimensionGrain * Use @Value for TimeDimension * Make Column/Metric immutable * Table can be immutable * Use @Value to simplify Query Changes elide to only inject models annotated with @Inject (#1299) * Changes elide to only inject models annotated with @Inject * Codacy fix Co-authored-by: Aaron Klish <klish@verizonmedia.com> Enhancemnents to Aggregation Store (#1300) Co-authored-by: moiz arafat <moiz.arafat@oath.com> QueryEngine result cache (#1279) * Add QueryEngine cache API * Remove outdated javadoc text Elide Async Feature Unit and Integration Tests (#1311) * Added integration,unit test setup for Async Module with few tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Licence headers, Sample entity and working Async test for POST,GET Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding additional integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding remaining integration tests and updating javadocs Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding all unit tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating tests to work with Singleton changes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Modifying tests to work with singleton logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Resolving some codacy errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding DSL for GraphQL and addressing review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing unit tests and checkstyle errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving tests to new format Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing session not closed error and checkstyle errors * Fixing imports Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing unused method and updating harness Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating unit tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating ResourceConfig for AsyncTest Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving logic for resource config to new test binder Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding bindFactory logic for async services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing IT * Fixing IT Co-authored-by: Abhino <abhino@gmail.com> * Adding Remaining integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Consolidating filter logic for integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing legacy Hibernate entity manager store (so it doesn't recycle the entity manager * Adding additional integration tests for Standalone and Spring boot Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacy errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Review Comments Co-authored-by: abhino <abhino@gmail.com> Co-authored-by: avijay <abhinav.vijaykumar@verizonmedia.com> Co-authored-by: moizarafat <moiz.arafat@gmail.com> Co-authored-by: moiz arafat <moiz.arafat@oath.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> in memory compilation integrated with dynamic config helpers (#1255) * Rebase against 5.x Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * pom fix Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * pom fix Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Merging 1220 Co-authored-by: rishi-aga <rishi.aga123@gmail.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Review Comments Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Update DynamicConfigTest.java * Review Comments Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> Co-authored-by: rishi-aga <rishi.aga123@gmail.com> * Fixed issues with rebase * Finished rebase * Async ID change from UUID to String and Dynamic Config FIx (#1325) * Async UUID to String, Dynamic Config NPE * Update DefaultAsyncQueryDAOTest.java * TANDS-19093-transactionRegistry-interface (#1332) * TANDS-19093-transactionRegistry-interface * TANDS-19093-transactionRegistry-interface * TANDS-19093-transactionRegistry-interface * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs Co-authored-by: Ramsha Rao <ramsha.rao@verizonmedia.com> * add requestId (#1331) Co-authored-by: aaggarwal <ashish.aggarwal@oath.com> * [maven-release-plugin] prepare release 5.0.0-pr9 * [maven-release-plugin] prepare for next development iteration * Introduce QueryResult class for QueryEngine caching (#1333) * Make QueryEngine cache bypass flag part of Query * Forming the cache key is not free, so don't a use stub cache * Add QueryResult class * Add pageTotals to QueryResult * Pass page totals through QueryResult instead of Pagination * Codacy doesn't know @Value makes fields private * remove missing javadoc warnings (#1337) Co-authored-by: Chandrasekar Rajasekar <chandrasekar.rajasekar@oath.com> * Elide 5.x dynamic config standalone (#1259) * Fix method call, Swagger Doc Update Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Swagger doc update Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * update pom.xml Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * update pom.xml Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * review comments Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Update ElideStandaloneSettings.java * Update pom.xml * Update pom.xml Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> * addTransaction-removeTransaction (#1338) * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169-changing-CVSS-score * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * making DataStore an abstract class * making DataStore an abstract class * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * addressing comments * addressing comments * addressing comments * fixing bugs Co-authored-by: Ramsha Rao <ramsha.rao@verizonmedia.com> * Fixed rebase * Removed old elide example modules * [maven-release-plugin] prepare release 5.0.0-pr10 * [maven-release-plugin] prepare for next development iteration * Validation for Model Configs (#1306) * Dynamic Config Validator Co-authored-by: rishi-aga <rishi.aga123@gmail.com> * Review Comments * Review Comments * Use DynamicConfigValidator instead of ElideConfigParser Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> * add explicit join (#1364) Co-authored-by: Chandrasekar Rajasekar <chandrasekar.rajasekar@oath.com> * Fixes - Honor Doc Version in SwaggerController and Use ISO8601Dates Serde Format in Date Formatting (#1336) * misc_fixes * review comments * Review Comments * DyFixes * DyFixes * Elide dynamic config model verification (#1354) * sign & Verify model * review comments * typo fix * indent fix * review comment * additional testcases * revert system exit * fix codacy * add return * add system exit Co-authored-…
aklish
pushed a commit
that referenced
this pull request
Nov 17, 2020
* Make QueryEngine cache bypass flag part of Query * Forming the cache key is not free, so don't a use stub cache * Add QueryResult class * Add pageTotals to QueryResult * Pass page totals through QueryResult instead of Pagination * Codacy doesn't know @value makes fields private
aklish
added a commit
that referenced
this pull request
Nov 17, 2020
* parent a14ccfbb7b558d27799b4e7b1916850519639708 author Jack (정환) <QubitPi@users.noreply.github.com> 1559678988 -0700 committer Aaron Klish <klish@verizonmedia.com> 1589583449 -0500 Create AggregationDataStore module (#845) * Create AggregationDataStore module * Address Aaron's comments * Fix build failure AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Define QueryEngine Contract (#867) Fixed rebase on master SQL Query Engine (#878) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Added calcite as a dependency. Merged in changes for QueryEngine interface Fixed checkstyle issues Added basic H2 DB test harness Started breaking out projections Moved getValue and setValue from PersistentResource to EntityDictionary Added basic logic to hydrate entities Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration Minor cleanup Refactored HQLFilterOperation to take an alias generator Added test support for RSQL filter generation. Some cleanup Added basic support for WHERE clause filtering on the fact table Added working test for subquery SQL Added basic join logic for filters Added a test with a subquery and a filter join Refactored Schema classes and Query to support metric aggregation SQL expansion Added group by support Added logic for ID generation Added sorting logic and test Added pagination support and testing All column references use proper name now for SQL Removed calcite as a query engine Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton Added HAVING clause support Changed Query to take schema instead of entityClass First pass at cleanup Fixed checkstyles Cleanup Cleanup Added a complex SQL expression test and fixed bugs Fixed merge issues. Added another test. Added better logging Fixed bug in pagination SQL generation * Build is working * Inspection rework Add EntityProjection plumbing (#949) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * Removed duplicated Schema class from rebase * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup Hydrate Relationship (#987) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Added basic H2 DB test harness * Started breaking out projections * Moved getValue and setValue from PersistentResource to EntityDictionary * Added basic logic to hydrate entities * Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration * Refactored HQLFilterOperation to take an alias generator * Added test support for RSQL filter generation. Some cleanup * Added basic support for WHERE clause filtering on the fact table * Added working test for subquery SQL * Added basic join logic for filters * Added a test with a subquery and a filter join * Refactored Schema classes and Query to support metric aggregation SQL expansion * Added group by support * Added logic for ID generation * Added sorting logic and test * Added pagination support and testing * All column references use proper name now for SQL * Removed calcite as a query engine * Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton * Added HAVING clause support * Changed Query to take schema instead of entityClass * First pass at cleanup * Fixed checkstyles * Cleanup * Hydrate Relationship * Cleanup * Added a complex SQL expression test and fixed bugs * Fixed merge issues. Added another test. Added better logging * Self-review * Self-review * Self-review * Self-review * Self-review * Address comments from @aklish * Refactor EntityHydrator (#893) * rebase * keep Jiaqi's changes * fix id * fix maven verify * Remove HQLFilterOperation * fix dictionary * fix SqlEngineTest * remove unused part * make codacy happy * should use getParametrizedType * address comments Implement GraphQLEntityProjectionMaker (#986) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * GraphQL projection maker using document * Argument handling and fragment check * Add comments * Add fragment resolver * fix typo * break code into more methods * remove pagination and sorting * Removed duplicated Schema class from rebase * re-arrange keywords * Address comment * Add arguments for attribute fields * Handle arguments * support partial query, update edges/node logic * Entity projection with aliases * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * fix create relationship object using entity * Add tests passed * code clean up * refactor fatcher, fix test cases * rename keywords * rebase branch (#12) * rebased * Graphql projection refactor (#13) * fix fragment resolver * Fix variable resolver * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup * rebase * Rebased on AggregationDataStore * clean up extra new lines * address comments * Builder pattern * update comments * remove projection in entity * fix jackson * Hydrate Relationship (#987) (#15) * Address some codecy comments * Add comment for partial query * Reenable tests * Address comments, refactor alias * Add test for alias * swapped test case * fix get type Added AggregationDataStore Code (#991) * Adding testing for aggregation data store * Debugging integration tests * Continuing testing work * AggregationDataStore * AggregationDataStore testing * Added more tests * Aggregation Data Store * Cleaned up testing code * Cleaned up code, fixed helper for AggregationDataStore * end * Fixed checkstyle, other minor fixes * fixed comment * Minor fixes * Fixed id type issue, added exception for queries with no metrics Fixed build (#993) Making TimeDimension an interface (#992) [maven-release-plugin] prepare release 5.0.0-pr1 [maven-release-plugin] prepare for next development iteration Renamed graphQL file to match test (#1002) [maven-release-plugin] prepare release 5.0.0-pr2 [maven-release-plugin] prepare for next development iteration Add JoinTo annotation (#1006) * Added JoinTo Annotation * Added working test * Added TODO comment for next PR * Added TODO comment for next PR * Added Sorting and Filtering support for JoinTo Columns * Fixed IT tests for Aggregation Data Store * Moved entityManager creation to happen separately for each query (#1008) * Moved entityManager creation to happen separately for each query * Closing EntityManager after each query * Inspection rework Column annotation (#1017) * Solved column issue and added QueryEngineFactory * Caching query engine in AggregationDataStore * Fixed column description * Update SQLQueryEngine.java (#1019) * Add SQLMetrix, rearrange packages (#1020) * Add SQLMetrix, rearrange packages * address comment Manager transacton manually (#1021) * Manager transacton manually * Add readonly Hydrate GraphQL Schema with parameterized attributes (#1018) * GraphQL schema expose expected argument name and its type for each attribute * Change empty arguments to unmodifable set AggregationStore: Add multiple time grain definitions to schema (#1022) * Fixed checkstyle warnings and errors. Separated the Query dimension interface from the Schema dimension interface * Added skeleton code to convert entity projection arguments into time grains * Cleanup * Class renames per inspection comments * Inspection comments Refactor time dimension logic (#1028) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception ISSUE-1026 Add support for @Subselect (#1038) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect * Address comments ISSUE-1027 Support join for having clause (#1039) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1027 Support join for having clause function name fixed to enableISO8601Dates (#1052) Support for multiple queries at root is added (#1044) * Support for multiple queries at root is added * Added test with alias * comments resolved Add time grain to GraphQL schema (#1042) * Added basic plumbing to push attributes from the entity projection down to the QueryEngine * Added logic to expand SQL time expression in SQLQueryEngine * Added SQLQueryEngine tests * Added IT tests * The AggregationStore now adds graphql parameters for parameterized columns * Minor refactor * Inspection rework * Minor fix Support multiple query of same entity with different alias (#1055) * Support multiple query of same entity with different alias * add static method to generate keyname for GraphQLProjectionInfo projections * Remove aliasPartialQuerySameAttribute MetadataStore Models (#1068) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * Metadatastore models * Address comments * address comments * move root * fix style check SQLQueryTemplate Model (#1073) * SQLQueryTemplate * SQLTables * refactor * update sql dimension projection * update sql dimension projection * clean up dimension projection * refactor sql components * aggregatable field rework * add comments * rearrange packages * Add dimension projection back * fix checkstyle * Add dictionary * Simplify MetricFunction and SQLQueryTemplate * Address comments Integrate Metadata Model and SQLQueryTemplate Model (#1083) * Integrate Metadata Model and SQLQueryTemplate Model * remove AggregationDictionary and AggregationManager * Add timezone * Can only query analyticView Fixed issues with rebase Add auto configuration for aggregation store (#1087) * Added autoconfiguration for QueryEngineFactory * Unified class scanning. Started cleaning up datastores so they only register the entities they manage * Full build passes * Minor cleanup * Minor refactoring * Added EntityManagerFactory bean configuratino * Refactored class scanning for Elide standalone * Updated spring boot starter pom * Removed @Entity from all metadata models. Started cleaning up entity dictionary entity registration * Broken implementation. Just checking in so I can revert if needed. * All tests pass * Added unit tests * Minor cleanup * One more fix * Fixed broken tests * Added package include support back * Class scanning for annotations ignores inherited * Added a test based on inspection comments * Inspection comment fix * Changed initalization of MetadataStore * More inspection rework * Turned back on OWASP scanning * More rework remove @Inherited (#1092) Support Non JPA Entity in AggregationDataStore (#1051) * Create AggregationDataStore module (#845) * Create AggregationDataStore module * Address Aaron's comments * Fix build failure AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Define QueryEngine Contract (#867) Fixed rebase on master SQL Query Engine (#878) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Added calcite as a dependency. Merged in changes for QueryEngine interface Fixed checkstyle issues Added basic H2 DB test harness Started breaking out projections Moved getValue and setValue from PersistentResource to EntityDictionary Added basic logic to hydrate entities Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration Minor cleanup Refactored HQLFilterOperation to take an alias generator Added test support for RSQL filter generation. Some cleanup Added basic support for WHERE clause filtering on the fact table Added working test for subquery SQL Added basic join logic for filters Added a test with a subquery and a filter join Refactored Schema classes and Query to support metric aggregation SQL expansion Added group by support Added logic for ID generation Added sorting logic and test Added pagination support and testing All column references use proper name now for SQL Removed calcite as a query engine Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton Added HAVING clause support Changed Query to take schema instead of entityClass First pass at cleanup Fixed checkstyles Cleanup Cleanup Added a complex SQL expression test and fixed bugs Fixed merge issues. Added another test. Added better logging Fixed bug in pagination SQL generation * Build is working * Inspection rework Add EntityProjection plumbing (#949) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * Removed duplicated Schema class from rebase * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup Hydrate Relationship (#987) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Added basic H2 DB test harness * Started breaking out projections * Moved getValue and setValue from PersistentResource to EntityDictionary * Added basic logic to hydrate entities * Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration * Refactored HQLFilterOperation to take an alias generator * Added test support for RSQL filter generation. Some cleanup * Added basic support for WHERE clause filtering on the fact table * Added working test for subquery SQL * Added basic join logic for filters * Added a test with a subquery and a filter join * Refactored Schema classes and Query to support metric aggregation SQL expansion * Added group by support * Added logic for ID generation * Added sorting logic and test * Added pagination support and testing * All column references use proper name now for SQL * Removed calcite as a query engine * Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton * Added HAVING clause support * Changed Query to take schema instead of entityClass * First pass at cleanup * Fixed checkstyles * Cleanup * Hydrate Relationship * Cleanup * Added a complex SQL expression test and fixed bugs * Fixed merge issues. Added another test. Added better logging * Self-review * Self-review * Self-review * Self-review * Self-review * Address comments from @aklish * Refactor EntityHydrator (#893) * rebase * keep Jiaqi's changes * fix id * fix maven verify * Remove HQLFilterOperation * fix dictionary * fix SqlEngineTest * remove unused part * make codacy happy * should use getParametrizedType * address comments Implement GraphQLEntityProjectionMaker (#986) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * GraphQL projection maker using document * Argument handling and fragment check * Add comments * Add fragment resolver * fix typo * break code into more methods * remove pagination and sorting * Removed duplicated Schema class from rebase * re-arrange keywords * Address comment * Add arguments for attribute fields * Handle arguments * support partial query, update edges/node logic * Entity projection with aliases * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * fix create relationship object using entity * Add tests passed * code clean up * refactor fatcher, fix test cases * rename keywords * rebase branch (#12) * rebased * Graphql projection refactor (#13) * fix fragment resolver * Fix variable resolver * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup * rebase * Rebased on AggregationDataStore * clean up extra new lines * address comments * Builder pattern * update comments * remove projection in entity * fix jackson * Hydrate Relationship (#987) (#15) * Address some codecy comments * Add comment for partial query * Reenable tests * Address comments, refactor alias * Add test for alias * swapped test case * fix get type Added AggregationDataStore Code (#991) * Adding testing for aggregation data store * Debugging integration tests * Continuing testing work * AggregationDataStore * AggregationDataStore testing * Added more tests * Aggregation Data Store * Cleaned up testing code * Cleaned up code, fixed helper for AggregationDataStore * end * Fixed checkstyle, other minor fixes * fixed comment * Minor fixes * Fixed id type issue, added exception for queries with no metrics Fixed build (#993) Making TimeDimension an interface (#992) * [maven-release-plugin] prepare release 5.0.0-pr1 * [maven-release-plugin] prepare for next development iteration * Renamed graphQL file to match test (#1002) * [maven-release-plugin] prepare release 5.0.0-pr2 * [maven-release-plugin] prepare for next development iteration * Add JoinTo annotation (#1006) * Added JoinTo Annotation * Added working test * Added TODO comment for next PR * Added TODO comment for next PR * Added Sorting and Filtering support for JoinTo Columns * Fixed IT tests for Aggregation Data Store * Moved entityManager creation to happen separately for each query (#1008) * Moved entityManager creation to happen separately for each query * Closing EntityManager after each query * Inspection rework * Column annotation (#1017) * Solved column issue and added QueryEngineFactory * Caching query engine in AggregationDataStore * Fixed column description * Update SQLQueryEngine.java (#1019) * Add SQLMetrix, rearrange packages (#1020) * Add SQLMetrix, rearrange packages * address comment * Manager transacton manually * Add readonly * Manager transacton manually (#1021) * Manager transacton manually * Add readonly * Hydrate GraphQL Schema with parameterized attributes (#1018) * GraphQL schema expose expected argument name and its type for each attribute * Change empty arguments to unmodifable set * AggregationStore: Add multiple time grain definitions to schema (#1022) * Fixed checkstyle warnings and errors. Separated the Query dimension interface from the Schema dimension interface * Added skeleton code to convert entity projection arguments into time grains * Cleanup * Class renames per inspection comments * Inspection comments * some rework * use getTimeDimension() * change exception * Refactor time dimension logic (#1028) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect (#1038) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect * Address comments * ISSUE-1027 Support join for having clause (#1039) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1027 Support join for having clause * View Design * Add tests and cleanup * rename annotation * function name fixed to enableISO8601Dates (#1052) * fix bugs * Support for multiple queries at root is added (#1044) * Support for multiple queries at root is added * Added test with alias * comments resolved * merge annotations * don't group by view relationship * Add time grain to GraphQL schema (#1042) * Added basic plumbing to push attributes from the entity projection down to the QueryEngine * Added logic to expand SQL time expression in SQLQueryEngine * Added SQLQueryEngine tests * Added IT tests * The AggregationStore now adds graphql parameters for parameterized columns * Minor refactor * Inspection rework * Minor fix * Support multiple query of same entity with different alias (#1055) * Support multiple query of same entity with different alias * add static method to generate keyname for GraphQLProjectionInfo projections * Remove aliasPartialQuerySameAttribute * MetadataStore Models (#1068) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * Metadatastore models * Address comments * address comments * move root * fix style check * SQLQueryTemplate Model (#1073) * SQLQueryTemplate * SQLTables * refactor * update sql dimension projection * update sql dimension projection * clean up dimension projection * refactor sql components * aggregatable field rework * add comments * rearrange packages * Add dimension projection back * fix checkstyle * Add dictionary * Simplify MetricFunction and SQLQueryTemplate * Address comments * Integrate Metadata Model and SQLQueryTemplate Model (#1083) * Integrate Metadata Model and SQLQueryTemplate Model * remove AggregationDictionary and AggregationManager * Add timezone * Can only query analyticView * integrate view with aggregation and metadata * remove includeField * remove @view * Use NonEntityDictionary * remove id * revert access changes * fix JPA entity check * remove @Entity from analyticViews * use table name as relationship type id * revert NonEntitydictinoary * tiny rework * Integration tests * Add jsonapi ittest * aggregation data store doesn't manage jpa entities * address comments fix integration dependencies (#1093) [maven-release-plugin] prepare release 5.0.0-pr3 [maven-release-plugin] prepare for next development iteration Fixed elide standalone pom from rebase Fixed minor bug in rebase Fixed rebase Improving class scanning performance for MetadataStore (#1117) Enable elide5 travis builds (#1129) * Move repeated @Sql annotations to class level (#1119) * Turning on travis builds with code coverage for Elide 5.x * Fixing security issue in spring-boot-web Co-authored-by: Brutus5000 <Brutus5000@gmx.net> Fix sorting and ambiguous join issue (#1127) * Added sorting on aggregated metric based on latest elide-5.x * Fix ambiguity problem * update comments * fix codacy * refactor generateColumnReference * update comment * address comments * test cleanup * update unittest * fix elide core alias * QueryValidatorTest * EntityProjectionTranslatorTest * go joinFragment approach * delete jointrienode Support no metric query (#1137) [maven-release-plugin] prepare release 5.0.0-pr4 [maven-release-plugin] prepare for next development iteration Check dependency injection (#1138) * Move repeated @Sql annotations to class level (#1119) * Fixing OWASP security warning for Tomcat dependency in Spring Web (#1132) * Adding support for dependency injection of Checks. Added test injection classes * Unit tests pass * Tests pass * Removed Initializer Concept Co-authored-by: Brutus5000 <Brutus5000@gmx.net> Fix travis log length (#1140) * Move repeated @Sql annotations to class level (#1119) * Fixing OWASP security warning for Tomcat dependency in Spring Web (#1132) * Removed unnecessary request/response logging (to shorten travis logs) * Address inspection comments * Address inspection comments * Address inspection comments * Removed logging of graphQL model building to shorten length * Fixed compilation error Co-authored-by: Brutus5000 <Brutus5000@gmx.net> [maven-release-plugin] prepare release 5.0.0-pr5 [maven-release-plugin] prepare for next development iteration Refactoring Elide Security Checks (#1144) Removed UpdateOnCreate. Refactored AuditLogger, Pagination, & Sorting (#1146) * Removed UpdateOnCreate. Refactored AuditLogger * Refactored Sorting * Refactored Pagination * Refactored Pagination * Pagination refactor builds and tests pass * Codacy fixes * Inspection rework * Fixes build * More inspection rework * Fix build Refactor share permission (#1154) * Refactored Sorting * Refactored Pagination * Refactored Pagination * Pagination refactor builds and tests pass * Codacy fixes * Refactored SharePermission to NonTransferable * Fixed build * Fixed startup bug * Fixed codacy and inspection comments * Update elide-core/src/main/java/com/yahoo/elide/core/EntityDictionary.java Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> * Inspection rework Co-authored-by: Jon Kilroy <jkilroy@gmail.com> metadata refactor (#1179) * metadata refactor * merge table and analyticView * fix reflection package * Make Table constrcut its own columns * table json type alias * add comment @Join and JoinPath add comment hide non-jpd entities in grpahql hide joins refactor hidden remove ant remove relationshp, update model (#1186) Rebased on master [maven-release-plugin] prepare release 5.0.0-pr6 [maven-release-plugin] prepare for next development iteration sourceColumn (#1196) * sourceColumn * address comment * change to sourcePath Cleaning up ElideSettings Added more test fixes Fixed a number of broken tests Build completes Fixed JSON-API Patch Response Fixed GraphQL errors. Added better errors for Forbidden Access Exception. Minor fix Added setId to EntityDictionary Initial version All test pass except for spring Build passes Adding checkstyle comments for classes Inspection comments Fixed checkstyle issues Change the way types are named in the GraphQL schema (#1215) * name utils * ready for review * fix: AggregationDataStoreIntegrationTest#testGraphQLSchema Label Resolver for Dimension Formula (#1208) * sql expression to dimension formula * Metric formula * Add unit tests * refacot formula references * fix comment * fix comment * resolve physical column * refactor dimensionFormula * cleanup * label resolver * cleanup * refactor * cleanup * move code * labelStore * labelStore 2 * remove generator * refactor metric formula * address comments * move symbol table into sql query engine * remove sourceColumn * update reference expression * visitor design * add comments * add unit join path test * fix timeDimensionProjection * fix null value number * address comments * fix codacy Co-authored-by: hchen04 <han.chen@oath.com> Fixing broken javadoc ColumnProjection Refactor (#1239) * unify projections * remove getFunction() * add table into query template Co-authored-by: hchen04 <han.chen@oath.com> Refactored metric SQL expansion to occur dynamically at query time ra… (#1270) * Refactored metric SQL expansion to occur dynamically at query time rather than statically during service initialization * Update elide-datastore/elide-datastore-aggregation/src/main/java/com/yahoo/elide/datastores/aggregation/queryengines/sql/query/SQLMetricProjection.java Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: Jon Kilroy <jkilroy@gmail.com> Remove path logic from aggregation store (#1271) * Extended query validation to ensure where clause and sorting clauses don't traverse relationships * Added error check for relationship traversal for Having clauses * Hacked up logic to remove reference Table resolve references that take a path * Minor refactoring * Removed logic to extend join path * Refactored column projections to use generics * Removed reference functions from MetricProjection base class * Refactored so that all SQL generation is done inside the ColumnProjection * Refactored so all projection happens through projections * Refactored column projection creation * Removed unnecessary code * Added templateQuery to arguments required to generate SQL in column projections * Fixed codacy issues Co-authored-by: Aaron Klish <klish@verizonmedia.com> Added InMemoryStore to list of datastores that run IT tests (#1225) Co-authored-by: Aaron Klish <klish@verizonmedia.com> Adding TimeDimensions to Table (#1273) Elide 5.x async (#1203) * Adding Async Entity Models Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async module and fixing parent pom version Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async service classes, security and cleanup services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Copyright License Header to Async module classes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Using new request scope for datastore transactions Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove thread sleep used in testing Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing additional issues based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding getter for AsyncQueryResult Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Reformatting. Co-authored-by: Abhino <abhino@gmail.com> * Adding mappedBy. Co-authored-by: Abhino <abhino@gmail.com> * Fixing several review comments - pom, lombok, thread exec Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacity errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving all the DB ORM logic to a utility class for Async Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove dependency on number of hosts, delete permission, separate method for interrupttime calculation Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Making cleaner a separate service. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted tabs. Co-authored-by: Abhino <abhino@gmail.com> * Updating order of modules. Co-authored-by: Abhino <abhino@gmail.com> * Adding cleanup sql. Co-authored-by: Abhino <abhino@gmail.com> * Adding delete logic. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Resolving build error. Co-authored-by: Abhino <abhino@gmail.com> * Changing AsyncDbUtil to use Functional Interface Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing sleep Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding functional interface logic for executeInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding debug statements for AsyncDbUtil Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Codacity errors, exception handling Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Async Entity Models Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async module and fixing parent pom version Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async service classes, security and cleanup services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Copyright License Header to Async module classes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Using new request scope for datastore transactions Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove thread sleep used in testing Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing additional issues based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding getter for AsyncQueryResult Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Reformatting. Co-authored-by: Abhino <abhino@gmail.com> * Adding mappedBy. Co-authored-by: Abhino <abhino@gmail.com> * Fixing several review comments - pom, lombok, thread exec Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacity errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving all the DB ORM logic to a utility class for Async Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove dependency on number of hosts, delete permission, separate method for interrupttime calculation Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Making cleaner a separate service. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted tabs. Co-authored-by: Abhino <abhino@gmail.com> * Updating order of modules. Co-authored-by: Abhino <abhino@gmail.com> * Adding cleanup sql. Co-authored-by: Abhino <abhino@gmail.com> * Adding delete logic. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Resolving build error. Co-authored-by: Abhino <abhino@gmail.com> * Changing AsyncDbUtil to use Functional Interface Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing sleep Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding functional interface logic for executeInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding debug statements for AsyncDbUtil Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Codacity errors, exception handling Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Rebased with elide-5.x and changed User principal logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Rebase Co-authored-by: Abhino <abhino@gmail.com> * Changing CleanerThread to use ExecuteInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing unused imports Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Delete Method changes Co-authored-by: Abhino <abhino@gmail.com> * Overriding hashCode and equals Co-authored-by: Abhino <abhino@gmail.com> * Overriding hashCode and equals Co-authored-by: Abhino <abhino@gmail.com> * Removing unused method Co-authored-by: Abhino <abhino@gmail.com> * Changing response logic for AsyncQuery Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding return to delete method * Resolving Review Comments Co-authored-by: Abhino <abhino@gmail.com> * Resolve some review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Changing the DAO contract and updating references to DAO Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing singletons and extra constructors, simplyfing logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding default constructor and setters for DefaultDAO Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacy error Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Changing Base to use correct obj Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Resolving review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Review comments Co-authored-by: Abhino <Abhino@gmail.com> * Elide 5.x elide-async integration in elide-standalone (#1205) * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Making AsyncQueryDAO configurable Co-authored-by: Abhino <abhino@gmail.com> * Making AsyncQueryDAO configurable Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: abhino <abhino@gmail.com> * Changing call to DefaultAsyncQueryDAO * Review comments Co-authored-by: Abhino <Abhino@gmail.com> Co-authored-by: Abhino <abhino@gmail.com> * Elide 5.x elide-async integration in elide-spring (#1204) * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Adding DAO configuration Co-authored-by: Abhino <abhino@gmail.com> * Checkstyle error Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Codacy Error Co-authored-by: Abhino <Abhino@gmail.com> * Changing include type to asyncQuery to avoid conflict Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Sync Co-authored-by: Abhino <Abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Executor Service Co-authored-by: Abhino <abhino@gmail.com> * Sync with Standalone Value * Changes to change UUID columns type as varchar(36) * Review Comments * Review Comments * Fix review comments Co-authored-by: Abhino <abhino@gmail.com> * Updating per review comments * Remove unused import * Removing status change to Queued * removing unused import * prepersist for status Co-authored-by: moizarafat <moiz.arafat@gmail.com> Co-authored-by: avijay <abhinav.vijaykumar@verizonmedia.com> Co-authored-by: moiz arafat <moiz.arafat@oath.com> Co-authored-by: Moiz Arafat <4307621+moizarafat@users.noreply.github.com> Co-authored-by: moizarafat <moiz.arafat@verizonmedia.com> Simplify life cycle hooks (#1224) * Initial version * Finished code. Starting to flesh out tests * Elide core compiles * Removed CRUDEvent.CrudAction * Added new test structure for LifeCycleTest * Fixed bug in Persistent Resource where relationship reads did not tigger a lifecycle event * Added several LifeCycle Tests * Added create test for persistent resource * Added Elide Persistent Resource Update Test * Added update with change spec test * Added Relationship Edit test * Added relationship test * Fixed checkstyle and compilation errors * Added remove from collection test * Added exception tests * Added delete test * Added read test * Fixed checkstyles * Elide core builds and tests pass * Fixed graphQL tests * Full build now passes * Removed old life cycle annotations * Minor cleanup * Fixed codacy issues * Update README.md Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: Jon Kilroy <jkilroy@gmail.com> Fixed elide-5.x build Fixed rebase issues Turning off retireJS for dependency check Better errors for missing IDs in Patch Extension Request. (#1278) (#1281) * Better errors for missing IDs in Patch Extension Request. (#1278) * Return a better error when handling invalid patch extension requests that are missing IDs * Added tests Co-authored-by: Aaron Klish <klish@verizonmedia.com> * Expect encoded response as array Co-authored-by: Aaron Klish <aklish@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: wcekan <wcekan@verizonmedia.com> [maven-release-plugin] prepare release 5.0.0-pr8 [maven-release-plugin] prepare for next development iteration Patch Extension Lifecycle tests (#1280) * Patch Extension Lifecycle tests * Missing check * Update error body Co-authored-by: wcekan <wcekan@verizonmedia.com> Add version support (#1295) * Initial non working version * More changes * Build passes * Expanded version param outside entity dictionary * Plumbed API version up through RequestScope * Plumbed API version up to controllers and endpoints * All code minus async written and working * Code complete * Build passes * All tests are passing * Changed aggregation store Table id to include version. Metadata will now surface table versions * Added a swagger IT test with API versions * Replace empty version string with constant. Fixed a few bugs in JSON-API parser * Added graphql type introspection test * Added graphql type introspection test * Added spring controller test. Fixed issue with version header parsing * Added spring controller test for graphql * Added swagger controller tests * Added more happy path versioned tests * Fixed bug in GraphQLIT * Added graphQL test for invalid API version * ADded invalid API version graphql controller test * Fixed checkstyles * Added standalone and patch extension tests * Fixed build errors and codacy errors Co-authored-by: Aaron Klish <klish@verizonmedia.com> Migrated spring controllers to use async (#1296) Co-authored-by: Aaron Klish <klish@verizonmedia.com> fixes for Async Models lifecycle hooks failing (#1294) * elide standalone fixes for lifecycle hooks failing * Manual Binding of lifecycle hooks * Manual binding of lifecycle in elide spring * Refactor * Review Comments * elide standalone fixes for lifecycle hooks failing * Manual Binding of lifecycle hooks * Manual binding of lifecycle in elide spring * Refactor * Review Comments * Rebase with 5.x Co-authored-by: moiz arafat <moiz.arafat@oath.com> Implement equals/hashCode and immutability where needed (#1297) * ColumnProjection must implement equals/hashCode * Use @Value for SQLTimeDimensionProjection * Use @Value for Argument * Use @Value for TimeDimensionGrain * Use @Value for TimeDimension * Make Column/Metric immutable * Table can be immutable * Use @Value to simplify Query Changes elide to only inject models annotated with @Inject (#1299) * Changes elide to only inject models annotated with @Inject * Codacy fix Co-authored-by: Aaron Klish <klish@verizonmedia.com> Enhancemnents to Aggregation Store (#1300) Co-authored-by: moiz arafat <moiz.arafat@oath.com> QueryEngine result cache (#1279) * Add QueryEngine cache API * Remove outdated javadoc text Elide Async Feature Unit and Integration Tests (#1311) * Added integration,unit test setup for Async Module with few tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Licence headers, Sample entity and working Async test for POST,GET Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding additional integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding remaining integration tests and updating javadocs Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding all unit tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating tests to work with Singleton changes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Modifying tests to work with singleton logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Resolving some codacy errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding DSL for GraphQL and addressing review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing unit tests and checkstyle errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving tests to new format Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing session not closed error and checkstyle errors * Fixing imports Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing unused method and updating harness Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating unit tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating ResourceConfig for AsyncTest Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving logic for resource config to new test binder Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding bindFactory logic for async services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing IT * Fixing IT Co-authored-by: Abhino <abhino@gmail.com> * Adding Remaining integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Consolidating filter logic for integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing legacy Hibernate entity manager store (so it doesn't recycle the entity manager * Adding additional integration tests for Standalone and Spring boot Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacy errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Review Comments Co-authored-by: abhino <abhino@gmail.com> Co-authored-by: avijay <abhinav.vijaykumar@verizonmedia.com> Co-authored-by: moizarafat <moiz.arafat@gmail.com> Co-authored-by: moiz arafat <moiz.arafat@oath.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> in memory compilation integrated with dynamic config helpers (#1255) * Rebase against 5.x Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * pom fix Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * pom fix Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Merging 1220 Co-authored-by: rishi-aga <rishi.aga123@gmail.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Review Comments Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Update DynamicConfigTest.java * Review Comments Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> Co-authored-by: rishi-aga <rishi.aga123@gmail.com> * Fixed issues with rebase * Finished rebase * Async ID change from UUID to String and Dynamic Config FIx (#1325) * Async UUID to String, Dynamic Config NPE * Update DefaultAsyncQueryDAOTest.java * TANDS-19093-transactionRegistry-interface (#1332) * TANDS-19093-transactionRegistry-interface * TANDS-19093-transactionRegistry-interface * TANDS-19093-transactionRegistry-interface * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs Co-authored-by: Ramsha Rao <ramsha.rao@verizonmedia.com> * add requestId (#1331) Co-authored-by: aaggarwal <ashish.aggarwal@oath.com> * [maven-release-plugin] prepare release 5.0.0-pr9 * [maven-release-plugin] prepare for next development iteration * Introduce QueryResult class for QueryEngine caching (#1333) * Make QueryEngine cache bypass flag part of Query * Forming the cache key is not free, so don't a use stub cache * Add QueryResult class * Add pageTotals to QueryResult * Pass page totals through QueryResult instead of Pagination * Codacy doesn't know @Value makes fields private * remove missing javadoc warnings (#1337) Co-authored-by: Chandrasekar Rajasekar <chandrasekar.rajasekar@oath.com> * Elide 5.x dynamic config standalone (#1259) * Fix method call, Swagger Doc Update Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Swagger doc update Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * update pom.xml Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * update pom.xml Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * review comments Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Update ElideStandaloneSettings.java * Update pom.xml * Update pom.xml Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> * addTransaction-removeTransaction (#1338) * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169-changing-CVSS-score * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * making DataStore an abstract class * making DataStore an abstract class * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * addressing comments * addressing comments * addressing comments * fixing bugs Co-authored-by: Ramsha Rao <ramsha.rao@verizonmedia.com> * Fixed rebase * Removed old elide example modules * [maven-release-plugin] prepare release 5.0.0-pr10 * [maven-release-plugin] prepare for next development iteration * Validation for Model Configs (#1306) * Dynamic Config Validator Co-authored-by: rishi-aga <rishi.aga123@gmail.com> * Review Comments * Review Comments * Use DynamicConfigValidator instead of ElideConfigParser Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> * add explicit join (#1364) Co-authored-by: Chandrasekar Rajasekar <chandrasekar.rajasekar@oath.com> * Fixes - Honor Doc Version in SwaggerController and Use ISO8601Dates Serde Format in Date Formatting (#1336) * misc_fixes * review comments * Review Comments * DyFixes * DyFixes * Elide dynamic config model verification (#1354) * sign & Verify model * review comments * typo fix * indent fix * review comment * additional testcases * revert system exit * fix codacy * add return * add system exit Co-authored-…
aklish
pushed a commit
that referenced
this pull request
Dec 11, 2020
* Make QueryEngine cache bypass flag part of Query * Forming the cache key is not free, so don't a use stub cache * Add QueryResult class * Add pageTotals to QueryResult * Pass page totals through QueryResult instead of Pagination * Codacy doesn't know @value makes fields private
aklish
added a commit
that referenced
this pull request
Dec 11, 2020
* parent a14ccfbb7b558d27799b4e7b1916850519639708 author Jack (정환) <QubitPi@users.noreply.github.com> 1559678988 -0700 committer Aaron Klish <klish@verizonmedia.com> 1589583449 -0500 Create AggregationDataStore module (#845) * Create AggregationDataStore module * Address Aaron's comments * Fix build failure AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Define QueryEngine Contract (#867) Fixed rebase on master SQL Query Engine (#878) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Added calcite as a dependency. Merged in changes for QueryEngine interface Fixed checkstyle issues Added basic H2 DB test harness Started breaking out projections Moved getValue and setValue from PersistentResource to EntityDictionary Added basic logic to hydrate entities Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration Minor cleanup Refactored HQLFilterOperation to take an alias generator Added test support for RSQL filter generation. Some cleanup Added basic support for WHERE clause filtering on the fact table Added working test for subquery SQL Added basic join logic for filters Added a test with a subquery and a filter join Refactored Schema classes and Query to support metric aggregation SQL expansion Added group by support Added logic for ID generation Added sorting logic and test Added pagination support and testing All column references use proper name now for SQL Removed calcite as a query engine Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton Added HAVING clause support Changed Query to take schema instead of entityClass First pass at cleanup Fixed checkstyles Cleanup Cleanup Added a complex SQL expression test and fixed bugs Fixed merge issues. Added another test. Added better logging Fixed bug in pagination SQL generation * Build is working * Inspection rework Add EntityProjection plumbing (#949) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * Removed duplicated Schema class from rebase * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup Hydrate Relationship (#987) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Added basic H2 DB test harness * Started breaking out projections * Moved getValue and setValue from PersistentResource to EntityDictionary * Added basic logic to hydrate entities * Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration * Refactored HQLFilterOperation to take an alias generator * Added test support for RSQL filter generation. Some cleanup * Added basic support for WHERE clause filtering on the fact table * Added working test for subquery SQL * Added basic join logic for filters * Added a test with a subquery and a filter join * Refactored Schema classes and Query to support metric aggregation SQL expansion * Added group by support * Added logic for ID generation * Added sorting logic and test * Added pagination support and testing * All column references use proper name now for SQL * Removed calcite as a query engine * Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton * Added HAVING clause support * Changed Query to take schema instead of entityClass * First pass at cleanup * Fixed checkstyles * Cleanup * Hydrate Relationship * Cleanup * Added a complex SQL expression test and fixed bugs * Fixed merge issues. Added another test. Added better logging * Self-review * Self-review * Self-review * Self-review * Self-review * Address comments from @aklish * Refactor EntityHydrator (#893) * rebase * keep Jiaqi's changes * fix id * fix maven verify * Remove HQLFilterOperation * fix dictionary * fix SqlEngineTest * remove unused part * make codacy happy * should use getParametrizedType * address comments Implement GraphQLEntityProjectionMaker (#986) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * GraphQL projection maker using document * Argument handling and fragment check * Add comments * Add fragment resolver * fix typo * break code into more methods * remove pagination and sorting * Removed duplicated Schema class from rebase * re-arrange keywords * Address comment * Add arguments for attribute fields * Handle arguments * support partial query, update edges/node logic * Entity projection with aliases * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * fix create relationship object using entity * Add tests passed * code clean up * refactor fatcher, fix test cases * rename keywords * rebase branch (#12) * rebased * Graphql projection refactor (#13) * fix fragment resolver * Fix variable resolver * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup * rebase * Rebased on AggregationDataStore * clean up extra new lines * address comments * Builder pattern * update comments * remove projection in entity * fix jackson * Hydrate Relationship (#987) (#15) * Address some codecy comments * Add comment for partial query * Reenable tests * Address comments, refactor alias * Add test for alias * swapped test case * fix get type Added AggregationDataStore Code (#991) * Adding testing for aggregation data store * Debugging integration tests * Continuing testing work * AggregationDataStore * AggregationDataStore testing * Added more tests * Aggregation Data Store * Cleaned up testing code * Cleaned up code, fixed helper for AggregationDataStore * end * Fixed checkstyle, other minor fixes * fixed comment * Minor fixes * Fixed id type issue, added exception for queries with no metrics Fixed build (#993) Making TimeDimension an interface (#992) [maven-release-plugin] prepare release 5.0.0-pr1 [maven-release-plugin] prepare for next development iteration Renamed graphQL file to match test (#1002) [maven-release-plugin] prepare release 5.0.0-pr2 [maven-release-plugin] prepare for next development iteration Add JoinTo annotation (#1006) * Added JoinTo Annotation * Added working test * Added TODO comment for next PR * Added TODO comment for next PR * Added Sorting and Filtering support for JoinTo Columns * Fixed IT tests for Aggregation Data Store * Moved entityManager creation to happen separately for each query (#1008) * Moved entityManager creation to happen separately for each query * Closing EntityManager after each query * Inspection rework Column annotation (#1017) * Solved column issue and added QueryEngineFactory * Caching query engine in AggregationDataStore * Fixed column description * Update SQLQueryEngine.java (#1019) * Add SQLMetrix, rearrange packages (#1020) * Add SQLMetrix, rearrange packages * address comment Manager transacton manually (#1021) * Manager transacton manually * Add readonly Hydrate GraphQL Schema with parameterized attributes (#1018) * GraphQL schema expose expected argument name and its type for each attribute * Change empty arguments to unmodifable set AggregationStore: Add multiple time grain definitions to schema (#1022) * Fixed checkstyle warnings and errors. Separated the Query dimension interface from the Schema dimension interface * Added skeleton code to convert entity projection arguments into time grains * Cleanup * Class renames per inspection comments * Inspection comments Refactor time dimension logic (#1028) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception ISSUE-1026 Add support for @Subselect (#1038) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect * Address comments ISSUE-1027 Support join for having clause (#1039) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1027 Support join for having clause function name fixed to enableISO8601Dates (#1052) Support for multiple queries at root is added (#1044) * Support for multiple queries at root is added * Added test with alias * comments resolved Add time grain to GraphQL schema (#1042) * Added basic plumbing to push attributes from the entity projection down to the QueryEngine * Added logic to expand SQL time expression in SQLQueryEngine * Added SQLQueryEngine tests * Added IT tests * The AggregationStore now adds graphql parameters for parameterized columns * Minor refactor * Inspection rework * Minor fix Support multiple query of same entity with different alias (#1055) * Support multiple query of same entity with different alias * add static method to generate keyname for GraphQLProjectionInfo projections * Remove aliasPartialQuerySameAttribute MetadataStore Models (#1068) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * Metadatastore models * Address comments * address comments * move root * fix style check SQLQueryTemplate Model (#1073) * SQLQueryTemplate * SQLTables * refactor * update sql dimension projection * update sql dimension projection * clean up dimension projection * refactor sql components * aggregatable field rework * add comments * rearrange packages * Add dimension projection back * fix checkstyle * Add dictionary * Simplify MetricFunction and SQLQueryTemplate * Address comments Integrate Metadata Model and SQLQueryTemplate Model (#1083) * Integrate Metadata Model and SQLQueryTemplate Model * remove AggregationDictionary and AggregationManager * Add timezone * Can only query analyticView Fixed issues with rebase Add auto configuration for aggregation store (#1087) * Added autoconfiguration for QueryEngineFactory * Unified class scanning. Started cleaning up datastores so they only register the entities they manage * Full build passes * Minor cleanup * Minor refactoring * Added EntityManagerFactory bean configuratino * Refactored class scanning for Elide standalone * Updated spring boot starter pom * Removed @Entity from all metadata models. Started cleaning up entity dictionary entity registration * Broken implementation. Just checking in so I can revert if needed. * All tests pass * Added unit tests * Minor cleanup * One more fix * Fixed broken tests * Added package include support back * Class scanning for annotations ignores inherited * Added a test based on inspection comments * Inspection comment fix * Changed initalization of MetadataStore * More inspection rework * Turned back on OWASP scanning * More rework remove @Inherited (#1092) Support Non JPA Entity in AggregationDataStore (#1051) * Create AggregationDataStore module (#845) * Create AggregationDataStore module * Address Aaron's comments * Fix build failure AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Define QueryEngine Contract (#867) Fixed rebase on master SQL Query Engine (#878) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron Added calcite as a dependency. Merged in changes for QueryEngine interface Fixed checkstyle issues Added basic H2 DB test harness Started breaking out projections Moved getValue and setValue from PersistentResource to EntityDictionary Added basic logic to hydrate entities Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration Minor cleanup Refactored HQLFilterOperation to take an alias generator Added test support for RSQL filter generation. Some cleanup Added basic support for WHERE clause filtering on the fact table Added working test for subquery SQL Added basic join logic for filters Added a test with a subquery and a filter join Refactored Schema classes and Query to support metric aggregation SQL expansion Added group by support Added logic for ID generation Added sorting logic and test Added pagination support and testing All column references use proper name now for SQL Removed calcite as a query engine Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton Added HAVING clause support Changed Query to take schema instead of entityClass First pass at cleanup Fixed checkstyles Cleanup Cleanup Added a complex SQL expression test and fixed bugs Fixed merge issues. Added another test. Added better logging Fixed bug in pagination SQL generation * Build is working * Inspection rework Add EntityProjection plumbing (#949) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * Removed duplicated Schema class from rebase * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup Hydrate Relationship (#987) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Added basic H2 DB test harness * Started breaking out projections * Moved getValue and setValue from PersistentResource to EntityDictionary * Added basic logic to hydrate entities * Added FromTable and FromSubquery annotations. Add explicit exclusion of entity relationship hydration * Refactored HQLFilterOperation to take an alias generator * Added test support for RSQL filter generation. Some cleanup * Added basic support for WHERE clause filtering on the fact table * Added working test for subquery SQL * Added basic join logic for filters * Added a test with a subquery and a filter join * Refactored Schema classes and Query to support metric aggregation SQL expansion * Added group by support * Added logic for ID generation * Added sorting logic and test * Added pagination support and testing * All column references use proper name now for SQL * Removed calcite as a query engine * Refactored HQLFilterOperation so it can be used for Having and Where clause generaiton * Added HAVING clause support * Changed Query to take schema instead of entityClass * First pass at cleanup * Fixed checkstyles * Cleanup * Hydrate Relationship * Cleanup * Added a complex SQL expression test and fixed bugs * Fixed merge issues. Added another test. Added better logging * Self-review * Self-review * Self-review * Self-review * Self-review * Address comments from @aklish * Refactor EntityHydrator (#893) * rebase * keep Jiaqi's changes * fix id * fix maven verify * Remove HQLFilterOperation * fix dictionary * fix SqlEngineTest * remove unused part * make codacy happy * should use getParametrizedType * address comments Implement GraphQLEntityProjectionMaker (#986) * AggregationDataStore: Schema (#846) * AggregationDataStore: Static Attribute Aggregation * Address comments * Implement TimeDimension and all its supporting components * refactor * Address comments from @aklish * Address comments from @aklish && Tests & Javadoc * Address comments from @aklish * Address comments from @aklish and @hellohanchen * Address comments from Aaron * ToMany is not supported * Address comments from Aaron * Initial sketch PersistentResourceTest now passes LifeCycleTest tests now pass More API changes for data store transaction. Also fixed createObject in persistent resource to take the correct projection Started to refactor tests IncludedProcessorTest refactored Refactored LifeCycleTest Started refactor on PersistentResourceTest More refactoring. Fixed a bug in Resource.toPersistentResource Only one test failing in PersistentResourceTest PersistentResourceTests now pass UpdateOnCreateTests now pass Added skeleton for translating JSON-API URL path into an EntityProjection Basic EntityProjectionMaker almost complete Added ability to merge entity projections by relationship Added first test for EntityProjectionMaker Non-working veresion (but clean) Tests now pass All EntityProjectioNMaker tests pass Elide-Core now builds Added handling of sparse attributes and relationships Expanding attributes for included entities Fixed a number of bugs found in IT tests Fixed some of the EntityProjectionMaker tests Fixed unit tests Made temporary modifications to exclude GraphQL (Build now passes) Added sparse field unit tests for EntityProjectionMaker * Fixed build issues after rebase * GraphQL projection maker using document * Argument handling and fragment check * Add comments * Add fragment resolver * fix typo * break code into more methods * remove pagination and sorting * Removed duplicated Schema class from rebase * re-arrange keywords * Address comment * Add arguments for attribute fields * Handle arguments * support partial query, update edges/node logic * Entity projection with aliases * Entity projection with aliases (#963) * Hacked up PersistentResource with new design * Core now compiles (and tests can run * EntityProjectionMaker tests pass * Build now passes (major cleanup still needed * fix create relationship object using entity * Add tests passed * code clean up * refactor fatcher, fix test cases * rename keywords * rebase branch (#12) * rebased * Graphql projection refactor (#13) * fix fragment resolver * Fix variable resolver * Wire in entity projection4 json api (#964) * Fixed DataStore API. Fixed a lot of the core unit tests * Checkstyles and more fixes * Hibernate 5 Tests Pass * Full build passes * Wire in entity projection4 json api (#965) * Initial concept. No testing changed. * Core compiles and EntityProjectionMaker tests (original ones) now pass * Minor edits to TestRequestScope * Full build passes now * removed entity dictionary from entity projection * Pre-inspection cleanup * minor inspection fixup * rebase * Rebased on AggregationDataStore * clean up extra new lines * address comments * Builder pattern * update comments * remove projection in entity * fix jackson * Hydrate Relationship (#987) (#15) * Address some codecy comments * Add comment for partial query * Reenable tests * Address comments, refactor alias * Add test for alias * swapped test case * fix get type Added AggregationDataStore Code (#991) * Adding testing for aggregation data store * Debugging integration tests * Continuing testing work * AggregationDataStore * AggregationDataStore testing * Added more tests * Aggregation Data Store * Cleaned up testing code * Cleaned up code, fixed helper for AggregationDataStore * end * Fixed checkstyle, other minor fixes * fixed comment * Minor fixes * Fixed id type issue, added exception for queries with no metrics Fixed build (#993) Making TimeDimension an interface (#992) * [maven-release-plugin] prepare release 5.0.0-pr1 * [maven-release-plugin] prepare for next development iteration * Renamed graphQL file to match test (#1002) * [maven-release-plugin] prepare release 5.0.0-pr2 * [maven-release-plugin] prepare for next development iteration * Add JoinTo annotation (#1006) * Added JoinTo Annotation * Added working test * Added TODO comment for next PR * Added TODO comment for next PR * Added Sorting and Filtering support for JoinTo Columns * Fixed IT tests for Aggregation Data Store * Moved entityManager creation to happen separately for each query (#1008) * Moved entityManager creation to happen separately for each query * Closing EntityManager after each query * Inspection rework * Column annotation (#1017) * Solved column issue and added QueryEngineFactory * Caching query engine in AggregationDataStore * Fixed column description * Update SQLQueryEngine.java (#1019) * Add SQLMetrix, rearrange packages (#1020) * Add SQLMetrix, rearrange packages * address comment * Manager transacton manually * Add readonly * Manager transacton manually (#1021) * Manager transacton manually * Add readonly * Hydrate GraphQL Schema with parameterized attributes (#1018) * GraphQL schema expose expected argument name and its type for each attribute * Change empty arguments to unmodifable set * AggregationStore: Add multiple time grain definitions to schema (#1022) * Fixed checkstyle warnings and errors. Separated the Query dimension interface from the Schema dimension interface * Added skeleton code to convert entity projection arguments into time grains * Cleanup * Class renames per inspection comments * Inspection comments * some rework * use getTimeDimension() * change exception * Refactor time dimension logic (#1028) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect (#1038) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1026 Add support for @Subselect * Address comments * ISSUE-1027 Support join for having clause (#1039) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * ISSUE-1027 Support join for having clause * View Design * Add tests and cleanup * rename annotation * function name fixed to enableISO8601Dates (#1052) * fix bugs * Support for multiple queries at root is added (#1044) * Support for multiple queries at root is added * Added test with alias * comments resolved * merge annotations * don't group by view relationship * Add time grain to GraphQL schema (#1042) * Added basic plumbing to push attributes from the entity projection down to the QueryEngine * Added logic to expand SQL time expression in SQLQueryEngine * Added SQLQueryEngine tests * Added IT tests * The AggregationStore now adds graphql parameters for parameterized columns * Minor refactor * Inspection rework * Minor fix * Support multiple query of same entity with different alias (#1055) * Support multiple query of same entity with different alias * add static method to generate keyname for GraphQLProjectionInfo projections * Remove aliasPartialQuerySameAttribute * MetadataStore Models (#1068) * Manager transacton manually * Add readonly * some rework * use getTimeDimension() * change exception * Metadatastore models * Address comments * address comments * move root * fix style check * SQLQueryTemplate Model (#1073) * SQLQueryTemplate * SQLTables * refactor * update sql dimension projection * update sql dimension projection * clean up dimension projection * refactor sql components * aggregatable field rework * add comments * rearrange packages * Add dimension projection back * fix checkstyle * Add dictionary * Simplify MetricFunction and SQLQueryTemplate * Address comments * Integrate Metadata Model and SQLQueryTemplate Model (#1083) * Integrate Metadata Model and SQLQueryTemplate Model * remove AggregationDictionary and AggregationManager * Add timezone * Can only query analyticView * integrate view with aggregation and metadata * remove includeField * remove @view * Use NonEntityDictionary * remove id * revert access changes * fix JPA entity check * remove @Entity from analyticViews * use table name as relationship type id * revert NonEntitydictinoary * tiny rework * Integration tests * Add jsonapi ittest * aggregation data store doesn't manage jpa entities * address comments fix integration dependencies (#1093) [maven-release-plugin] prepare release 5.0.0-pr3 [maven-release-plugin] prepare for next development iteration Fixed elide standalone pom from rebase Fixed minor bug in rebase Fixed rebase Improving class scanning performance for MetadataStore (#1117) Enable elide5 travis builds (#1129) * Move repeated @Sql annotations to class level (#1119) * Turning on travis builds with code coverage for Elide 5.x * Fixing security issue in spring-boot-web Co-authored-by: Brutus5000 <Brutus5000@gmx.net> Fix sorting and ambiguous join issue (#1127) * Added sorting on aggregated metric based on latest elide-5.x * Fix ambiguity problem * update comments * fix codacy * refactor generateColumnReference * update comment * address comments * test cleanup * update unittest * fix elide core alias * QueryValidatorTest * EntityProjectionTranslatorTest * go joinFragment approach * delete jointrienode Support no metric query (#1137) [maven-release-plugin] prepare release 5.0.0-pr4 [maven-release-plugin] prepare for next development iteration Check dependency injection (#1138) * Move repeated @Sql annotations to class level (#1119) * Fixing OWASP security warning for Tomcat dependency in Spring Web (#1132) * Adding support for dependency injection of Checks. Added test injection classes * Unit tests pass * Tests pass * Removed Initializer Concept Co-authored-by: Brutus5000 <Brutus5000@gmx.net> Fix travis log length (#1140) * Move repeated @Sql annotations to class level (#1119) * Fixing OWASP security warning for Tomcat dependency in Spring Web (#1132) * Removed unnecessary request/response logging (to shorten travis logs) * Address inspection comments * Address inspection comments * Address inspection comments * Removed logging of graphQL model building to shorten length * Fixed compilation error Co-authored-by: Brutus5000 <Brutus5000@gmx.net> [maven-release-plugin] prepare release 5.0.0-pr5 [maven-release-plugin] prepare for next development iteration Refactoring Elide Security Checks (#1144) Removed UpdateOnCreate. Refactored AuditLogger, Pagination, & Sorting (#1146) * Removed UpdateOnCreate. Refactored AuditLogger * Refactored Sorting * Refactored Pagination * Refactored Pagination * Pagination refactor builds and tests pass * Codacy fixes * Inspection rework * Fixes build * More inspection rework * Fix build Refactor share permission (#1154) * Refactored Sorting * Refactored Pagination * Refactored Pagination * Pagination refactor builds and tests pass * Codacy fixes * Refactored SharePermission to NonTransferable * Fixed build * Fixed startup bug * Fixed codacy and inspection comments * Update elide-core/src/main/java/com/yahoo/elide/core/EntityDictionary.java Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> * Inspection rework Co-authored-by: Jon Kilroy <jkilroy@gmail.com> metadata refactor (#1179) * metadata refactor * merge table and analyticView * fix reflection package * Make Table constrcut its own columns * table json type alias * add comment @Join and JoinPath add comment hide non-jpd entities in grpahql hide joins refactor hidden remove ant remove relationshp, update model (#1186) Rebased on master [maven-release-plugin] prepare release 5.0.0-pr6 [maven-release-plugin] prepare for next development iteration sourceColumn (#1196) * sourceColumn * address comment * change to sourcePath Cleaning up ElideSettings Added more test fixes Fixed a number of broken tests Build completes Fixed JSON-API Patch Response Fixed GraphQL errors. Added better errors for Forbidden Access Exception. Minor fix Added setId to EntityDictionary Initial version All test pass except for spring Build passes Adding checkstyle comments for classes Inspection comments Fixed checkstyle issues Change the way types are named in the GraphQL schema (#1215) * name utils * ready for review * fix: AggregationDataStoreIntegrationTest#testGraphQLSchema Label Resolver for Dimension Formula (#1208) * sql expression to dimension formula * Metric formula * Add unit tests * refacot formula references * fix comment * fix comment * resolve physical column * refactor dimensionFormula * cleanup * label resolver * cleanup * refactor * cleanup * move code * labelStore * labelStore 2 * remove generator * refactor metric formula * address comments * move symbol table into sql query engine * remove sourceColumn * update reference expression * visitor design * add comments * add unit join path test * fix timeDimensionProjection * fix null value number * address comments * fix codacy Co-authored-by: hchen04 <han.chen@oath.com> Fixing broken javadoc ColumnProjection Refactor (#1239) * unify projections * remove getFunction() * add table into query template Co-authored-by: hchen04 <han.chen@oath.com> Refactored metric SQL expansion to occur dynamically at query time ra… (#1270) * Refactored metric SQL expansion to occur dynamically at query time rather than statically during service initialization * Update elide-datastore/elide-datastore-aggregation/src/main/java/com/yahoo/elide/datastores/aggregation/queryengines/sql/query/SQLMetricProjection.java Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: Jon Kilroy <jkilroy@gmail.com> Remove path logic from aggregation store (#1271) * Extended query validation to ensure where clause and sorting clauses don't traverse relationships * Added error check for relationship traversal for Having clauses * Hacked up logic to remove reference Table resolve references that take a path * Minor refactoring * Removed logic to extend join path * Refactored column projections to use generics * Removed reference functions from MetricProjection base class * Refactored so that all SQL generation is done inside the ColumnProjection * Refactored so all projection happens through projections * Refactored column projection creation * Removed unnecessary code * Added templateQuery to arguments required to generate SQL in column projections * Fixed codacy issues Co-authored-by: Aaron Klish <klish@verizonmedia.com> Added InMemoryStore to list of datastores that run IT tests (#1225) Co-authored-by: Aaron Klish <klish@verizonmedia.com> Adding TimeDimensions to Table (#1273) Elide 5.x async (#1203) * Adding Async Entity Models Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async module and fixing parent pom version Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async service classes, security and cleanup services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Copyright License Header to Async module classes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Using new request scope for datastore transactions Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove thread sleep used in testing Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing additional issues based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding getter for AsyncQueryResult Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Reformatting. Co-authored-by: Abhino <abhino@gmail.com> * Adding mappedBy. Co-authored-by: Abhino <abhino@gmail.com> * Fixing several review comments - pom, lombok, thread exec Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacity errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving all the DB ORM logic to a utility class for Async Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove dependency on number of hosts, delete permission, separate method for interrupttime calculation Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Making cleaner a separate service. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted tabs. Co-authored-by: Abhino <abhino@gmail.com> * Updating order of modules. Co-authored-by: Abhino <abhino@gmail.com> * Adding cleanup sql. Co-authored-by: Abhino <abhino@gmail.com> * Adding delete logic. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Resolving build error. Co-authored-by: Abhino <abhino@gmail.com> * Changing AsyncDbUtil to use Functional Interface Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing sleep Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding functional interface logic for executeInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding debug statements for AsyncDbUtil Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Codacity errors, exception handling Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Async Entity Models Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async module and fixing parent pom version Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding async service classes, security and cleanup services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Copyright License Header to Async module classes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Using new request scope for datastore transactions Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove thread sleep used in testing Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing additional issues based on code quality review from codacy Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding getter for AsyncQueryResult Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Reformatting. Co-authored-by: Abhino <abhino@gmail.com> * Adding mappedBy. Co-authored-by: Abhino <abhino@gmail.com> * Fixing several review comments - pom, lombok, thread exec Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacity errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving all the DB ORM logic to a utility class for Async Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Remove dependency on number of hosts, delete permission, separate method for interrupttime calculation Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Variable Naming convention. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Making cleaner a separate service. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Remove unwanted tabs. Co-authored-by: Abhino <abhino@gmail.com> * Updating order of modules. Co-authored-by: Abhino <abhino@gmail.com> * Adding cleanup sql. Co-authored-by: Abhino <abhino@gmail.com> * Adding delete logic. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Resolving build error. Co-authored-by: Abhino <abhino@gmail.com> * Changing AsyncDbUtil to use Functional Interface Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing sleep Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding functional interface logic for executeInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding debug statements for AsyncDbUtil Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Codacity errors, exception handling Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Rebased with elide-5.x and changed User principal logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Rebase Co-authored-by: Abhino <abhino@gmail.com> * Changing CleanerThread to use ExecuteInTransaction Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing unused imports Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Delete Method changes Co-authored-by: Abhino <abhino@gmail.com> * Overriding hashCode and equals Co-authored-by: Abhino <abhino@gmail.com> * Overriding hashCode and equals Co-authored-by: Abhino <abhino@gmail.com> * Removing unused method Co-authored-by: Abhino <abhino@gmail.com> * Changing response logic for AsyncQuery Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding return to delete method * Resolving Review Comments Co-authored-by: Abhino <abhino@gmail.com> * Resolve some review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Changing the DAO contract and updating references to DAO Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing singletons and extra constructors, simplyfing logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding default constructor and setters for DefaultDAO Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacy error Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Changing Base to use correct obj Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Resolving review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Review comments Co-authored-by: Abhino <Abhino@gmail.com> * Elide 5.x elide-async integration in elide-standalone (#1205) * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Default enableAsync to False. Co-authored-by: Abhino <abhino@gmail.com> * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Resolving review comments. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Making AsyncQueryDAO configurable Co-authored-by: Abhino <abhino@gmail.com> * Making AsyncQueryDAO configurable Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: abhino <abhino@gmail.com> * Changing call to DefaultAsyncQueryDAO * Review comments Co-authored-by: Abhino <Abhino@gmail.com> Co-authored-by: Abhino <abhino@gmail.com> * Elide 5.x elide-async integration in elide-spring (#1204) * Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> Integrating elide-async. Co-authored-by: Abhino <abhino@gmail.com> * Removing unwanted params. Co-authored-by: Abhino <abhino@gmail.com> * Binding Cleaner service. Co-authored-by: Abhino <abhino@gmail.com> * Adding query result retention. Co-authored-by: Abhino <abhino@gmail.com> * Adding DAO configuration Co-authored-by: Abhino <abhino@gmail.com> * Checkstyle error Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Review comments Co-authored-by: Abhino <abhino@gmail.com> * Codacy Error Co-authored-by: Abhino <Abhino@gmail.com> * Changing include type to asyncQuery to avoid conflict Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Sync Co-authored-by: Abhino <Abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Cleaner Service Co-authored-by: Abhino <abhino@gmail.com> * Singleton for Executor Service Co-authored-by: Abhino <abhino@gmail.com> * Sync with Standalone Value * Changes to change UUID columns type as varchar(36) * Review Comments * Review Comments * Fix review comments Co-authored-by: Abhino <abhino@gmail.com> * Updating per review comments * Remove unused import * Removing status change to Queued * removing unused import * prepersist for status Co-authored-by: moizarafat <moiz.arafat@gmail.com> Co-authored-by: avijay <abhinav.vijaykumar@verizonmedia.com> Co-authored-by: moiz arafat <moiz.arafat@oath.com> Co-authored-by: Moiz Arafat <4307621+moizarafat@users.noreply.github.com> Co-authored-by: moizarafat <moiz.arafat@verizonmedia.com> Simplify life cycle hooks (#1224) * Initial version * Finished code. Starting to flesh out tests * Elide core compiles * Removed CRUDEvent.CrudAction * Added new test structure for LifeCycleTest * Fixed bug in Persistent Resource where relationship reads did not tigger a lifecycle event * Added several LifeCycle Tests * Added create test for persistent resource * Added Elide Persistent Resource Update Test * Added update with change spec test * Added Relationship Edit test * Added relationship test * Fixed checkstyle and compilation errors * Added remove from collection test * Added exception tests * Added delete test * Added read test * Fixed checkstyles * Elide core builds and tests pass * Fixed graphQL tests * Full build now passes * Removed old life cycle annotations * Minor cleanup * Fixed codacy issues * Update README.md Co-Authored-By: Jon Kilroy <jkilroy@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: Jon Kilroy <jkilroy@gmail.com> Fixed elide-5.x build Fixed rebase issues Turning off retireJS for dependency check Better errors for missing IDs in Patch Extension Request. (#1278) (#1281) * Better errors for missing IDs in Patch Extension Request. (#1278) * Return a better error when handling invalid patch extension requests that are missing IDs * Added tests Co-authored-by: Aaron Klish <klish@verizonmedia.com> * Expect encoded response as array Co-authored-by: Aaron Klish <aklish@gmail.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> Co-authored-by: wcekan <wcekan@verizonmedia.com> [maven-release-plugin] prepare release 5.0.0-pr8 [maven-release-plugin] prepare for next development iteration Patch Extension Lifecycle tests (#1280) * Patch Extension Lifecycle tests * Missing check * Update error body Co-authored-by: wcekan <wcekan@verizonmedia.com> Add version support (#1295) * Initial non working version * More changes * Build passes * Expanded version param outside entity dictionary * Plumbed API version up through RequestScope * Plumbed API version up to controllers and endpoints * All code minus async written and working * Code complete * Build passes * All tests are passing * Changed aggregation store Table id to include version. Metadata will now surface table versions * Added a swagger IT test with API versions * Replace empty version string with constant. Fixed a few bugs in JSON-API parser * Added graphql type introspection test * Added graphql type introspection test * Added spring controller test. Fixed issue with version header parsing * Added spring controller test for graphql * Added swagger controller tests * Added more happy path versioned tests * Fixed bug in GraphQLIT * Added graphQL test for invalid API version * ADded invalid API version graphql controller test * Fixed checkstyles * Added standalone and patch extension tests * Fixed build errors and codacy errors Co-authored-by: Aaron Klish <klish@verizonmedia.com> Migrated spring controllers to use async (#1296) Co-authored-by: Aaron Klish <klish@verizonmedia.com> fixes for Async Models lifecycle hooks failing (#1294) * elide standalone fixes for lifecycle hooks failing * Manual Binding of lifecycle hooks * Manual binding of lifecycle in elide spring * Refactor * Review Comments * elide standalone fixes for lifecycle hooks failing * Manual Binding of lifecycle hooks * Manual binding of lifecycle in elide spring * Refactor * Review Comments * Rebase with 5.x Co-authored-by: moiz arafat <moiz.arafat@oath.com> Implement equals/hashCode and immutability where needed (#1297) * ColumnProjection must implement equals/hashCode * Use @Value for SQLTimeDimensionProjection * Use @Value for Argument * Use @Value for TimeDimensionGrain * Use @Value for TimeDimension * Make Column/Metric immutable * Table can be immutable * Use @Value to simplify Query Changes elide to only inject models annotated with @Inject (#1299) * Changes elide to only inject models annotated with @Inject * Codacy fix Co-authored-by: Aaron Klish <klish@verizonmedia.com> Enhancemnents to Aggregation Store (#1300) Co-authored-by: moiz arafat <moiz.arafat@oath.com> QueryEngine result cache (#1279) * Add QueryEngine cache API * Remove outdated javadoc text Elide Async Feature Unit and Integration Tests (#1311) * Added integration,unit test setup for Async Module with few tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding Licence headers, Sample entity and working Async test for POST,GET Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding additional integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding remaining integration tests and updating javadocs Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding all unit tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating tests to work with Singleton changes Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Modifying tests to work with singleton logic Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Resolving some codacy errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding DSL for GraphQL and addressing review comments Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing unit tests and checkstyle errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving tests to new format Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing session not closed error and checkstyle errors * Fixing imports Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Removing unused method and updating harness Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating unit tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Updating ResourceConfig for AsyncTest Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Moving logic for resource config to new test binder Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Adding bindFactory logic for async services Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing IT * Fixing IT Co-authored-by: Abhino <abhino@gmail.com> * Adding Remaining integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Consolidating filter logic for integration tests Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing legacy Hibernate entity manager store (so it doesn't recycle the entity manager * Adding additional integration tests for Standalone and Spring boot Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Fixing codacy errors Co-authored-by: moizarafat <moiz.arafat@gmail.com> * Review Comments Co-authored-by: abhino <abhino@gmail.com> Co-authored-by: avijay <abhinav.vijaykumar@verizonmedia.com> Co-authored-by: moizarafat <moiz.arafat@gmail.com> Co-authored-by: moiz arafat <moiz.arafat@oath.com> Co-authored-by: Aaron Klish <klish@verizonmedia.com> in memory compilation integrated with dynamic config helpers (#1255) * Rebase against 5.x Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * pom fix Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * pom fix Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Merging 1220 Co-authored-by: rishi-aga <rishi.aga123@gmail.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Spring Boot Changes Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Review Comments Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> * Update DynamicConfigTest.java * Review Comments Co-authored-by: Ayeswarya <ayeswarya.anandan@verizonmedia.com> Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> Co-authored-by: rishi-aga <rishi.aga123@gmail.com> * Fixed issues with rebase * Finished rebase * Async ID change from UUID to String and Dynamic Config FIx (#1325) * Async UUID to String, Dynamic Config NPE * Update DefaultAsyncQueryDAOTest.java * TANDS-19093-transactionRegistry-interface (#1332) * TANDS-19093-transactionRegistry-interface * TANDS-19093-transactionRegistry-interface * TANDS-19093-transactionRegistry-interface * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs * TANDS-19093-fixing-bugs Co-authored-by: Ramsha Rao <ramsha.rao@verizonmedia.com> * add requestId (#1331) Co-authored-by: aaggarwal <ashish.aggarwal@oath.com> * [maven-release-plugin] prepare release 5.0.0-pr9 * [maven-release-plugin] prepare for next development iteration * Introduce QueryResult class for QueryEngine caching (#1333) * Make QueryEngine cache bypass flag part of Query * Forming the cache key is not free, so don't a use stub cache * Add QueryResult class * Add pageTotals to QueryResult * Pass page totals through QueryResult instead of Pagination * Codacy doesn't know @Value makes fields private * remove missing javadoc warnings (#1337) Co-authored-by: Chandrasekar Rajasekar <chandrasekar.rajasekar@oath.com> * Elide 5.x dynamic config standalone (#1259) * Fix method call, Swagger Doc Update Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Swagger doc update Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * update pom.xml Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * update pom.xml Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * review comments Co-authored-by: AvaniMakwana <Avani.makwana@outlook.com> * Update ElideStandaloneSettings.java * Update pom.xml * Update pom.xml Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> * addTransaction-removeTransaction (#1338) * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169 * TANDS-19169-changing-CVSS-score * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addTransaction-removeTransaction * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * addressing-comments * making DataStore an abstract class * making DataStore an abstract class * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * adding-transaction-id to transaction implementations * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * fixing bugs * addressing comments * addressing comments * addressing comments * fixing bugs Co-authored-by: Ramsha Rao <ramsha.rao@verizonmedia.com> * Fixed rebase * Removed old elide example modules * [maven-release-plugin] prepare release 5.0.0-pr10 * [maven-release-plugin] prepare for next development iteration * Validation for Model Configs (#1306) * Dynamic Config Validator Co-authored-by: rishi-aga <rishi.aga123@gmail.com> * Review Comments * Review Comments * Use DynamicConfigValidator instead of ElideConfigParser Co-authored-by: moiz arafat <moiz.arafat@verizonmedia.com> * add explicit join (#1364) Co-authored-by: Chandrasekar Rajasekar <chandrasekar.rajasekar@oath.com> * Fixes - Honor Doc Version in SwaggerController and Use ISO8601Dates Serde Format in Date Formatting (#1336) * misc_fixes * review comments * Review Comments * DyFixes * DyFixes * Elide dynamic config model verification (#1354) * sign & Verify model * review comments * typo fix * indent fix * review comment * additional testcases * revert system exit * fix codacy * add return * add system exit Co-authored-…
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Currently QueryEngine.execute takes a Query as input and returns an iterable list of results as output. However, the Query can contain a mutable Pagination object which may be modified by
execute
to contain the page total. This complicates caching, since we want a single result object to cache. So for the purposes of QueryEngine, we make the Pagination used by Query immutable, andexecute
now returns a QueryResult which contains both the result data and the page total metadata.Other caching-related changes:
Motivation and Context
Current design of Query/QueryEngine is not ideal when caching is supported. This PR is a prerequisite for implementing the cache.
How Has This Been Tested?
UTs pass. No UTs added.
License
I confirm that this contribution is made under an Apache 2.0 license and that I have the authority necessary to make this contribution on behalf of its copyright owner.