Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Refactored from gradle to maven * Upgraded dependencies * Removed response body from read API error message * Allow for unit tests to run without API key * API usability improvements * Now parses messages out of ContextedExceptions * Sort system properties * API for reporting custom built requests improved * Fixed assorted errors and error-prone issues * Enable checkstyle, with a few caveats: JavaDoc isn't yet required, but will probably turn that on sometime during 2.x lifecycle; a couple of defaults were globally disabled because our project diverges too much from those rules. * We may want to turn on checkstyle in the build/compile phase. But right now it's only in the site phase and won't cause builds to fail. * The serialization code initially relies on some naming conventions divergent from Java conventions, so some style checks are suppressed (see ./suppresions.xml) (this might be an obsolete comment) * A few Sun conventions are disabled in ./checkstyle.xml because they are either problematic in a library context or they just don't make a lot of sense for this project. * Applying various checkstyle recommendations across the project * Add final to method parameters that aren't modified * Convert most protected fields to protected accessors I don't have any religion on this, but it's consistent with Sun style, and there's no clear reason to fight it. * Punting on Visibility/Naming for the DefaultsConfigContext (checkstyle) * Revised tests to support GSON->Jackson refactoring * Tweak field naming to match Sun conventions * Update checkstyle dependency version * Remove remaining DTO suppressions, switch to accessors * Migrate to JSON serialization to Jackson - Sticks with 2.8.11 (provided version) to avoid convergent dependency issues - Will need to deal with Map serialization mechanism change in Jackson 2.9 * Avoid Thread Local Storage in deserialization of Notices Issue #48 on the honeybadger-io github issues list - candidate solution for removing thread local hack in HoneyBadgerNoticeLoader - Uses a Jackson-specific feature for injecting values. - passes integration tests locally, but may need to do some additional work to be sure it works all the way down the object graph - Probably need to remove a deprecated constructor or two in the DTOs * Fix multiple serialization and deserialization issues * This exposed a bit of a flaw in the HoneyBadgerNoticeLoader design, but because the only known use of that code is in Integration tests, I've implemented a change in the test. Load data and Memory usage is not available from the Notice retrieval API, and it was previously automatically generated at construction time, or via the thread-local version of configContext. * Revise Readme instructions for testing * Update test instructions - Still not quite sure how to do maven release yet since I don't have experience publishing to public maven repos, but I can probably update the instructions when we're a little closer * Modify readme to explain tag feature * Implement most of Elijah's suggestions * Implement other minor code review suggestions * Support configurable retry attempts (#57) Issue #47 - Discovered and fixed an unexpected bug that skipped retries in the case of an IO Exception - Added system property maximum_retry_attempts (Integer, constraints: value >= 1) - Changed the logic so the property is actually the max number of retries, not attempts. (This is a difference in behavior from 1.0) - Added explanatory note to property usage in Readme - Appropriate tests for retry logic - Fix a few more minor checkstyle complaints introduced with configurable retry logic feature
- Loading branch information