I've recently encountered a couple "why the heck is my external configuration considered invalid" problems and wanted to call out the solutions:
- Make sure the default values have TWO underscores like DEFAULT__COURSE_ID. Using one underscore breaks the reflection scheme.
- Java default values MUST be static as in "public static final int DEFAULT__COURSE_ID". Leaving out the static breaks the reflection scheme.