Skip to content
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

Lookup tables #3748

Merged
merged 54 commits into from
Apr 28, 2017
Merged

Lookup tables #3748

merged 54 commits into from
Apr 28, 2017

Conversation

kroepke
Copy link
Member

@kroepke kroepke commented Apr 28, 2017

Initial lookup table feature

fixes #3691

kroepke and others added 30 commits April 10, 2017 13:54
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
forgetting builder annotations is quickly becoming my favorite bug
without a single hierarchy getting the cache/adapter types is awkward as it would shadow the GET {idOrName} call
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
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
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
…jects are mutated

adapter and cache deletion is denied if those are in use by any lookup table in the system
fix wrong ids in warning log messages
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
 - 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
actually give random number generator config so we can showcase it
only the page is loading data and passing it down to components
attach promise to correct action
The cache handles the lookup in the data adapter on a cache miss.
kroepke and others added 18 commits April 25, 2017 17:59
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
- Rename createTable() to updateTable()
- Remove duplication in initialize() and updateTable() methods
- Move table creation into a separate class
Some data adapters need lifecycle management to handle thread pools,
background jobs etc.
It's safe to check started/stopped before grabbing the lock.
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
@kroepke kroepke added this to the 2.3.0 milestone Apr 28, 2017
@kroepke kroepke requested a review from bernd April 28, 2017 14:26
@bernd bernd self-assigned this Apr 28, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create Lookup Table domain objects
2 participants