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 54 commits into from Apr 28, 2017


None yet
2 participants

kroepke commented Apr 28, 2017

Initial lookup table feature

fixes #3691

kroepke and others added some commits Apr 10, 2017

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 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 ob…
…jects 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
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
wip making adapter UI pluggable
actually give random number generator config so we can showcase it
simplify data management for adapters pages
only the page is loading data and passing it down to components
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.

kroepke and others added some commits Apr 26, 2017

Add lifecycle management to LookupDataAdapter and subclasses
Some data adapters need lifecycle management to handle thread pools,
background jobs etc.

This comment has been minimized.

this will never unlock the lock and probably deadlocks when stop() is called

This comment has been minimized.


bernd replied Apr 26, 2017

Fixed it in c461c47

bernd and others added some commits Apr 26, 2017

Do not return without unlocking
It's safe to check started/stopped before grabbing the lock.
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

@kroepke kroepke added this to the 2.3.0 milestone Apr 28, 2017

@kroepke kroepke requested a review from bernd Apr 28, 2017

@bernd bernd self-assigned this Apr 28, 2017


bernd approved these changes Apr 28, 2017

@bernd bernd merged commit e8b1c86 into master Apr 28, 2017

3 of 4 checks passed

continuous-integration/travis-ci/pr The Travis CI build is in progress
ci-web-linter Jenkins build graylog-pr-linter-check 1553 has succeeded
continuous-integration/travis-ci/push The Travis CI build passed
license/cla Contributor License Agreement is signed.

@bernd bernd deleted the lookup-tables branch Apr 28, 2017

@bernd bernd removed the ready-for-review label Apr 28, 2017

@davama davama referenced this pull request Apr 28, 2017


Create Lookup Table domain objects #3691

3 of 3 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment