Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* WIP on DTOs and domain objects * Start LookupTableService * wip data structures/dto services * fix botched rebase * add resources for caches, adapters and lookup tables extends Objectmapper provider to allow registering NamedTypes for subtype resolution in plugins cache and data adapter configs are polymorphic and require proper binding of config classes * add missing property annotations for cache api dtos * add even more property annotations and make ids nullable in REST DTOs forgetting builder annotations is quickly becoming my favorite bug * consolidate resources into one without a single hierarchy getting the cache/adapter types is awkward as it would shadow the GET {idOrName} call * convert data adapters to factory with descriptors this simplifies lifecycle management, so we can easily instantiate the descriptor without having to have a complete data adapter return the information in the `/system/lookups/types/adapters` call * convert lookup cache metadata to factory/descriptor in order to get metadata (which cache providers are present, what default config do they have) we need to expose the descriptors since we don't want to instantiate the entire cache, we break out the metadata into its own class that is provided the factory can also create instances of the actual caches, based on its configuration * build lookup tables during start up this change assembles lookup tables from configured caches and adapters a GET resource for data is exposed on /system/lookup/data/{name} moved adapters and caches to their own packages to make easier on the eye introduced NullCache (type "none") to disable caching * send update/delete cluster events when lookup tables or underlying objects are mutated adapter and cache deletion is denied if those are in use by any lookup table in the system * fix lookup cache and adapter usages fix wrong ids in warning log messages * don't recreate cache or adapter when their config hasn't changed when updating a lookup table we need to take care not to throw away existing caches or stateful adapters that would make them lose their state, even though nothing has changed * add generic lookup table support * guard against nulls * initial skeleton for lookup table UI - lookup table resource can optionally resolve the referenced caches and data adapters on each page (resulting in fewer API calls and simpler UI code) - three new pages are available underneath /system/lookuptables * minor cosmetic fixes * lookup table detail view skeleton * cache list and detail page skeletons * data adapter UI skeleton * wip making adapter UI pluggable actually give random number generator config so we can showcase it * wip data adapter ui * simplify data management for adapters pages only the page is loading data and passing it down to components * remove obsolete page import * use correct validation annotation for config * use correct state from store attach promise to correct action * Always lookup values through the cache The cache handles the lookup in the data adapter on a cache miss. * Add license headers * the great cache page copy of 2017 * fix routes * import cache plugin export definitions from core use correct guava type name in plugin registration * Lookup now returns a LookupResult instead of Object (#3731) The LookupResult contains a map so it can hold multiple values for the key lookup. It also provides a cache-ttl value to allow custom expiration for individual results. * expose simple guava cache configuration * Remove dataAdapter field from cache, it's accessible through the table * Always get the lookup table when the actual lookup is executed This way we avoid keeping a reference to the lookup table for too long. That would be an issue when the lookup table gets updated. * wip lookup table ui added create/edit form for lookup tables not possible to save them yet, neither to pick adapters and caches don't load pagination twice for adapters and caches extract some common css * Refactor LookupTableService - Rename createTable() to updateTable() - Remove duplication in initialize() and updateTable() methods - Move table creation into a separate class * always return promises to minimize accidents by implicit returns * Add some more debug/warn log statements to LookupTableService#updateTable * Add lifecycle management to LookupDataAdapter and subclasses Some data adapters need lifecycle management to handle thread pools, background jobs etc. * create/edit form for lookup tables * Do not return without unlocking It's safe to check started/stopped before grabbing the lock. * Support an optional documentation component for adapters and caches * audit events for create/update/delete lookup operations * Add a CSV file lookup table data adapter * Disable react/no-unescaped-entities for csvfile documentation * Use java.nio API to create file input stream and set a charset https://www.cloudbees.com/blog/fileinputstream-fileoutputstream-considered-harmful * Add more information about CSV file requirements Reformat to look nicer. * Return deleted tables/caches/data adapters in the response * Use java.nio.charset.StandardCharsets to please forbidden-apis * added TimeUnitInput core component extend guava cache configuration to include * refresh keys * both expire after options added documentation to edit/create form pass down explicit "updateConfig" prop handler to support more complex config updates from plugin fieldsets * fix wrong attribute name * remove dummy random data adapter
- Loading branch information