Skip to content
This repository has been archived by the owner on Mar 3, 2023. It is now read-only.

Replaces keys.yaml and Keys with Key enum #1693

Merged
merged 7 commits into from
Feb 6, 2017

Conversation

billonahill
Copy link
Contributor

(Replaces prototype PR at billonahill#5 with the full refactor)

Refactoring to no longer read keys from keys.yaml. All key usage is via Key enum and removing keys.yaml and Keys. Core classes in this review are Key and Config. All others are refactors to use changes to those two classes.

Benefits:

  • compile time checks of invalid keys
  • easier refactoring
  • remove complexity of bundling and reading keys.yaml
  • more concise usage
  • extensibility of Key metadata (e.g., type, default, required, etc)

After this I'd like to also remove defaults.yaml in favor of the enum approach.

@@ -33,8 +33,7 @@ private LocalDefaults() {
static {
try {
defaults = Resource.load(
"com.twitter.heron.scheduler.local.LocalDefaults",
LocalConstants.DEFAULTS_YAML);
"com.twitter.heron.scheduler.local.LocalDefaults", DEFAULTS_YAML);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just wondering if this is needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be refactored out in a follow-up that addresses defaults.

@objmagic
Copy link
Contributor

objmagic commented Feb 3, 2017

code LGTM. CI integration test fails.

@objmagic
Copy link
Contributor

objmagic commented Feb 5, 2017

That integration test is failing, but we should be able to merge this PR. I have some PRs waiting this to be merged.

@billonahill billonahill merged commit 69670cb into apache:master Feb 6, 2017
@billonahill billonahill deleted the billg/config_key_enum branch February 6, 2017 04:35
nicknezis pushed a commit that referenced this pull request Sep 14, 2020
* Clean up config visiblity and dead code

* Change to use getStringValue instead of get

* Replace keys.yaml with Key enum

* revert change from this review

* Migrate all files to use Key enum for configs instead of keys.yaml

* Fixed typo where scheduler config was being overwritten
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants