* begin with failing test
* begin with failing test
* remove unused Spring Batch classes.
convert service classes
* move provider
* just one test left to fix
* fix test
* msg.code
* change log
* bumping hapi to PRE12
* fix test
* review feedback
* license update
* fix intermittent and status update atomicity
* restore url-level partition selection
* fix tests
Co-authored-by: Ken Stevens <ken@smilecdr.com>
- Added functionality to optionally filter out deleted resources when resolving forced ids to persistent ids
- Bumps version
Co-authored-by: nathaniel.doef <nathaniel.doef@smilecdr.com>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* rename field that drives everything includes
* discovered design flaw in completion
* fix intermittent
* ensure batch2 completion handler can't be called twice
* changelog
* changelog
* javadoc
* bump hapi version
* licences
* Batch2 job definitions can now optionally provide an error handler callback that will be called when a job
instance fails, errors or is cancelled.
* Changed error handler and completion handler to take a "read-only" copy of an instance instead of just certain fields.
* comment
* javadoc
* fix test
* change step execution context from taking instance id to instance
* review feedback
* fix test
* replace 20 or so jetbrains annotations
* fixed a few incorrect @NotNull annotations
Co-authored-by: Ken Stevens <ken@smilecdr.com>
Extend rules with filters.
New rule extension, and consent service for post-query filtering.
Co-authored-by: josie <josie.vandewetering@smilecdr.com>
Co-authored-by: Jason Roberts <jason.roberts@smilecdr.com>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
* first test passes. onto the next one
* two down two to go
* three down one to go
* licenses
* basic admin-json plumbing confirmed with IT
* FIXME
* FIXME
* FIXME
* FIXME
* changelog
* bump hapi version to 6.1.0-PRE6-SNAPSHOT
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* Initial implementation
* Implement job cancellation
* Works for date and token. Cleanup required.
* Works for string and quantity.Cleanup pending.
* Works for reference and perform cleanup.
* Cleanup configuration and add missing tests
* Eliminate sort property registry (no go for a cluster) for a static property map.
* Missed in previous commit
* Implement HSearch number parameter
* Implement HSearch number sorting
* Unify different hibernate search names (HibernateSearch, Freetext and Lucene) to HSearch
* Move analysis configures for lucene and elastic to same file to enforce the need to keep them in synch
* Use new defined constant
* Rename package too
* Rename additional elastic references
* bump version to 6.1.0-PRE5-SNAPSHOT
* Restore Hap prefix to hapi configurers
* fixing hapi version of new maven module
* fix pom
* fix pom
Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* begin with failing test
* continue building out
* continue building out
* reworking chunk api
* replace ChunkId zippers with proper iterator
* progressing test
* yay test passes!
* switch to idchunk interface
* fixmes
* compiles
* fixme
* fixme
* rename classes
* rename json classes with json suffix
* work towards homogeneous chunks
* fixme
* fixme
* unit test
* fixme
* fixme
* pull out builder
* moar tests
* moar tests
* preserve order
* moar test
* moar test
* fixme
* fixme -> wip to start ci
* msg code
* msg code fix test
* fixme
* change provider implementation
* final WIPs
* IT failing
* IT passes
* java 11
* fix test
* fix test
* fix test
* changelog
* use batch size if provided
* last WIP
* fix test
* fix test
* fix test
* whitespace change to trigger new build
* fix test
* bumping hapi version
* bumping hapi version
* fix test
* review feedback
Co-authored-by: Ken Stevens <ken@Kens-MacBook-Pro.local>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* adding a bunch of stuff
* most of the steps are working now
* writing more tests
* adding more tests
* updated the batch2 coordinators
* updating version
* some minor test tweaks
* added a new test
* adding more tests
* blah
* blah
* review fixes 1
* fixing tests and refactoring
* review points
* updated for code review
* review fixes
* updated
* step 1 on review step 5
* final touches
* blah
Co-authored-by: leif stawnyczy <leifstawnyczy@leifs-MacBook-Pro.local>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* add support for in and not-in qualifiers
* fix failing test
* fix broken test
* fix broken tests
* code review comments
* Make dependency on IValidationSupport optional
* create IValidationSupport dependency only if needed
* small design improvements
* changelog
* rework validation support initialization
* Update hapi-fhir-jpaserver-searchparam/src/main/java/ca/uhn/fhir/jpa/searchparam/matcher/InMemoryResourceMatcher.java
Co-authored-by: Ken Stevens <khstevens@gmail.com>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
* fix config settings for system-level expunge
* clean up expunge everything interface
* extract common system provider
* changelog
* version bump
* touch changelog to force a fresh pipeline
* re-enable publishing of checkstyle
* back out Gary's Sonatype change entirely
* adding version.yaml, updating version in pom.xml
* It is possible to write to a resource in a partition the user is not authorized to. (#3397)
* fixed
* remove sout
* add msg.code
* fix failed tests
* fix equal sign
* update msg code
* extract method
* Fix up code numbers
* Clean changelog
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
* Revert final artifact version
* add graphql test (#3585)
* added graphql birthdate test
* fix variable name
* typo
* 3506 mdm log enhancement (#3543)
* Providing Fixme's to be reworked at a later time.
* Adding // FIXME Anna to assist our Austrian friend.
* Adding logging test as a first step in addressing issue #2822.
* hapifhir#3506 part 2: enhance logging for (un)successful MDM matching
hapifhir#3506 part 2: enhance logging for (un)successful MDM matching
* Update MdmMatchLinkSvc.java
#3506 move "narrowed down" log to different place
* #3506 added scores and tests
#3506 added scores and tests
* #3506 formatting
#3506 formatting
* #3506 create changelog file
#3506 create changelog file
* #3506 fix typo
#3506 fix typo
* #3506 fix part 3, minor formatting
#3506 fix part 3, minor formatting
* #3506 fix tests
#3506 fix tests
Co-authored-by: Etienne Poirier <etienne.poirier@smilecdr.com>
Co-authored-by: Anna <anna@MacBook-Pro.local>
* mdm matching (#3579)
* Added fix for https://github.com/hapifhir/hapi-fhir-jpaserver-starter… (#3551)
* Added fix for https://github.com/hapifhir/hapi-fhir-jpaserver-starter/issues/328
* Update HapiFhirJpaMigrationTasks.java
Corrected ordering
* Update HapiFhirJpaMigrationTasks.java
Moving index status to be last operation
* Revert "Update HapiFhirJpaMigrationTasks.java"
This reverts commit 37bfd3e66e.
* Moved to bottom
Co-authored-by: Jens Kristian Villadsen <jvi@trifork.com>
* begin with failing test
* fixed
* changelog
* add jira tag
* Update to 6 1 (#3582)
* added changelog folder, upped version
* version enum
* add a few more unit tests to assert proper NO_MATCH exclusion
* revert merge master doh! bad reflexes
* revert merge origin master
* unrevert revert. ugh what a pain
* merge recovery. fix poms.
* merge recovery. more reverting
* merge recovery. more reverting
* merge recovery. more reverting
* Revert "merge recovery. fix poms."
This reverts commit ae6e0ddb06.
* more revert revert reversions
* more revert revert reversions
* pre-review cleanup
Co-authored-by: Jens Kristian Villadsen <jenskristianvilladsen@gmail.com>
Co-authored-by: Jens Kristian Villadsen <jvi@trifork.com>
Co-authored-by: Mark Iantorno <markiantorno@gmail.com>
* Fix regression of 3411 - _lastUpdated gets clobbered during $reindex job (#3586)
* When chunking for the reindex job, don't clobber the lastUpdated if provided by the caller.
* License
* Ks 20220508 log colour (#3592)
* don't use colours when output is redirected to a file
* change log
* Added fix for https://github.com/hapifhir/hapi-fhir-jpaserver-starter… (#3551) (#3594)
* Added fix for https://github.com/hapifhir/hapi-fhir-jpaserver-starter/issues/328
* Update HapiFhirJpaMigrationTasks.java
Corrected ordering
* Update HapiFhirJpaMigrationTasks.java
Moving index status to be last operation
* Revert "Update HapiFhirJpaMigrationTasks.java"
This reverts commit 37bfd3e66e.
* Moved to bottom
Co-authored-by: Jens Kristian Villadsen <jvi@trifork.com>
Co-authored-by: Jens Kristian Villadsen <jenskristianvilladsen@gmail.com>
Co-authored-by: Jens Kristian Villadsen <jvi@trifork.com>
* 3584 case sensitive string elasticsearch (#3596)
* Fix for case-sensitive search with newer elasticsearch
* Test and fix ascii normalization too
* more test cases
* comments
* Docs update empi usecase (#3598)
* Update diagram for use case 5
* Add new page for database support
* Licnese
* Mb norm fix (#3604)
* Normalize query since wildcard searches aren't normalized in elastic
* Handle batch2 job cancellation (#3603)
* Handle batch2 job cancellation
* Add CANCELLED status
* Remove unuseful test
Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>
* Add batch2 interfaces to obtain recent instances (#3601)
Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>
* changelog folder
* Documentation change, added warning log and change log for ticket (#3609)
Co-authored-by: Steven Li <steven@smilecdr.com>
* fix ne for lastUpdated search param (#3589)
* init/wip
* add implementation, add tests
* add checks and some refactoring
* refactor and simplify tests
* refactor
* get rid of some of the warnings
* add changelog
* remove my todos
* redo ne logic to account for less precise dates
* add tests
* refactoring
* rename to follow convention
Co-authored-by: Justin_Dar <justin.dar@smilecdr.com>
* Version bump
Co-authored-by: markiantorno <markiantorno@gmail.com>
Co-authored-by: katiesmilecdr <88786813+katiesmilecdr@users.noreply.github.com>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
Co-authored-by: alackerbauer <33912849+alackerbauer@users.noreply.github.com>
Co-authored-by: Etienne Poirier <etienne.poirier@smilecdr.com>
Co-authored-by: Anna <anna@MacBook-Pro.local>
Co-authored-by: Jens Kristian Villadsen <jenskristianvilladsen@gmail.com>
Co-authored-by: Jens Kristian Villadsen <jvi@trifork.com>
Co-authored-by: michaelabuckley <michael.buckley@smilecdr.com>
Co-authored-by: jmarchionatto <60409882+jmarchionatto@users.noreply.github.com>
Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>
Co-authored-by: StevenXLi <stevenli_8118@hotmail.com>
Co-authored-by: Steven Li <steven@smilecdr.com>
Co-authored-by: jdar8 <69840459+jdar8@users.noreply.github.com>
Co-authored-by: Justin_Dar <justin.dar@smilecdr.com>
Add support for _total, _count, and _offset to Lucene backend.
Co-authored-by: Michael Buckley <michael.buckley@smilecdr.com>
Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>
* committed changes discussed at tasking
* Changed the subscription message to store the request partition
* modified mdm subscription loader to create a cross partition subscription in the default partition if multitenancy is enabled
* Fix errors when running Multitenant IT for mdm
* Added partition id to mdm golden resource search and creating/updating golden resource
* added partition id column to the mdm link table
* Added partition id of the source resource to partition id column of the mdm link table
* broken build
* working -links, missing hapi tests
* Fixed the mdm link db table due to feedback
* added IT for create link mdm operation, also added changes to pass the IT
* Fixed test for create mdm links, added test for update mdm link on partitioned server
* changed mdmLink search from searchbyExample to criteriaBuilder, added partitionHelperSvc to determine partition
* added test for merge golden resource and search golden resource on partitioned server
* added unit test for not duplicate on partitioned and non-partitioned server
* added criteriabuilder search and tests
* code cleanup
* added partition support to -merge-golden-resources operation
* test cleanup
* fixed operations with multitenancy
* added test for mdm clear operation
* added waiting for batch job to finish in mdm clear operation test
* added query to dao to support partitioned server for mdm clear operation
* resolve mistake from merge conflict
* added mdm-submit operations, also fixed paging for -query
* added partitionIds constant
* fixed build issue where there was no Code.msg in mdm partition exceptions
* code review fixes
* fix broken test, also fix a bug where query link could not query by linkSource properly
* fix test stubbing
* bump hapi version to 6.0.0-PRE10-SNAPSHOT
Co-authored-by: Ken Stevens <khstevens@gmail.com>
Co-authored-by: Steven Li <steven@smilecdr.com>
Co-authored-by: Long Ma <long@smilecdr.com>
* moved classes
* Bump version
* licensing
* Repackage, fix messages
* reject empty streams
* Remove dead import
* Version bump
* Fix up test to actually return a data stream
* Move null binary svc to storage
* Start working on reindex job
* Updates
* Ongoing work
* Ongoing work
* Work on reindex
* Reindex work
* Add logging
* Fix typo
* Test fix
* Test fix
* Address fixme
* Liocense header
* Resolve fixme
* Add logging
* Update logs
* Address review comments
* License header
* Test fixes
* Test fix
* Test fixes
* Test fix
* Version bump
* Version bump
* Rely on context refresh event instead of postconstruct. Load bean lazily.
* Remove parent autowire
* Break termcodesystem circular dependency with new bean
* Break cycle between BaseTermReadSvcImpl and TermCodeSystemStorageSvcImpl
* move back into helper method
* Rip out scheduling and submission to spring batch away from BulkDataExportSvcImpl
* wip
* Fix bean naming
* Revert
* re-add autowiring
* Reformat
* docs and reformat
* Back out change
* feedback from review
* merge conflicts
* Enable search narrowing on large ValueSets
* ValueSet improvements
* Work on narrowing
* Work on narrowing
* Work on narrowing
* Work on narrowing
* Add test
* Work on narrowing interceptor
* Work on narrowing
* License headers
* Refactor code narrowing
* Add docs
* Version bump
* Test fix
* Test fixes
* Build fix
* Fixes
* Version bump
* Test fix
* License header updates
* Build fix
* Test fixes
* Test fix
* Test fix
* Docs fix
* Test fix
* Test fix
* Resolve fixme
* Bump
* Force a CI build
* Make CI happen again
* Work on new batch framework
* Work on new batch framework
* Work on new batch framework
* Work on batch
* Compile working
* Work on bulk import
* Adjust import
* Work
* Work on batch
* Bump version
* WOrk on new batch processes
* Work on bath
* Bump to PRE4
* Build fixes
* CLeanup
* Small tweak
* Add exception code
* Test fixes
* Test fixes
* Test fix
* Additional synchronization
* Add license headers
* Test fixes
* Test fixes
* Add changelogs
* Address PG
* Test fix
* Test fix
* Test fixes
* Review notes
* Work on tests
* Test fixes
* Test fix
* Work on tests
* Tets fix
* Test fixes
* Test fixes
* Add missing exception codes
* Test fix
* Test fixes
* More test fixing
* License headers
* Test fix
* Add new test logging
* Work on tests
* Test fixes
* Test fix
* Resolve fixme
* Try to avoid test failure
* Add import command
* Work on storage
* Fix error codes
* Fixes
* License header
* Build fix
* Build fixes
* Fix dep
* fix handling of common search parameters
* Revert "fix handling of common search parameters"
This reverts commit 89c45eebdc.
* Fix implementation, add test (#3378)
* Fix implementation, add test
* Tighten test
* Rip out dead modules
* Add changelog
Co-authored-by: Jason Roberts <jason.roberts@smilecdr.com>
* Fixed null pointer exception for re-loading subscription on cdr restart and when there's no partition id in the request, and added tests
* added changelogs for this fix
Co-authored-by: Steven Li <steven@smilecdr.com>
* Change token and reference search params to 'keyword' field type
* remove normalizer for keyword field
* WIP - refactor lastN operation to use hibernate search generated ES index.
* Add ES native aggregation builder for lastN
* added date search param support for searching resourcetable ES index
* * Added DateSearch parameterized tests to ElasticSearch test suite
* Added more tests cases for Date searches
* WIP refactor LastN test data to central generator class and use it for both hibernate-search and elastic search implementations.
* WIP fix lastNDataGenerator to avoid assertion errors.
* Fixed tests to run test suite on both existing lastN search implementation and newer extended lucene index based search.
* Cleanup json string to avoid carriage return noise
* Fix checkstyle issues
* Fix checkstyle Msg code issues
* Fix checkstyle Msg code issues
* Add more test case for GT, SA precision modifier
* Fix date precision test cases
* Fix Msg Code conflicts
* Add more logging
* Add way more loggging
* even more logging
* fix msg code conflicts
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
* Initial design of adding exception codes to exceptions
* Initial design of adding exception codes to exceptions
* change int module name to string
* add comment
* shorten message
* shorten message
* added checkstyle
* developing checker
* completed checkstyle plugin and unit test for it
* fix NPE
* fix checker so it ignores throws on exceptions that aren't new
* change parameter order in InvalidResponseException
* accept Msg.code() in any parameter since some exceptions like MessageException have the message string as the second parameter
* exclude generated files
* BIG COMMIT added error codes to all exception throws
* example test fix
* Modified tests such that the assert statements would better match the message responses.
* Modified additional tests such that the assert statements would better match the message responses.
* fix test
* merge master
* merge master
* Fourth commit of modified tests such that the assert statements would better match the message response
* Changes made to modify assert statements such that they match the new errors which now use error codes. Also changed ResourceNotFoundException to include error codes in its messages.
* Modified assert messages to better match new error codes
* Time Zone changes DRAFT. Certain tests pass in intellij and fail during mvn install
* Modified assert messages to better match new error codes
* Added comments for time zone fixes. Previous commit comment on time zone fixes was incorrect. By invaliding caches, all tests on both intellij and mvn install passed.
* Reverted changes on azure-pipelines.yml
* updated hapi-fhir version for checkstyle module
* changes to azure-pipelines.yml
* changes to azure-pipelines.yml
* change to pom.xml to include hapi-fhir-checkstyle in ALLMODULES
* changes to azure-piplines (these changes are to be reverted after testing)
* reverted changes to azure-piplines
* reverted change where hapi-fhir-checkstyle was added to pom.xml (hapi-fhir)
* Attempted fix on checkstyle build error
* modified azure-piplines.yml to change maven repository for checkstyle build
* Attempted fix on checkstyle build error
* checkstyle config location change for hapi-depoloyable-pom. (will be reverted if it does not work)
* attempted dependency add for hapi-depoloyable-pom. (will be reverted if it does not work)
* reverted changes for hapi-deployable-pom
* add javadoc
* update last code
* Attempted fix on checkstyle build error
* Finished adding in missing error codes to pass Checkstyle checks
* Test pipelining
* Fixing errors and bumping version (as suggested by Gary)
* Merge
* Fixing Checkstyle error
* Attempted fix for date error
* Add error code onto assert statement
* Add in a couple more error codes
* Fixing assert statements
* Bump to static version for dependency
* Adding error code to message
* Adding error codes to exceptions
* Adding error codes to exceptions
* Change to work with cdr branch
* Update to faulty error message
* Merge changes
* allow checkstyle pom to deploy
Co-authored-by: Ken Stevens <khstevens@gmail.com>
Co-authored-by: Simon Zuccherato <simon.zuccherato@smilecdr.com>
Co-authored-by: Predap <simon.zuccherato@gmail.com>
Co-authored-by: Predap <46201929+Predap@users.noreply.github.com>
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
* Bump a number of versions
* Fixes
* Work on version bump
* Bump
* Test fix
* More version bumps
* Build fixes
* Test fixes
* Fixes
* Fixes
* Test fix
* Bump jacoco
* Test fix
* Test fix
* Test fix
* Build fix
* Build fix
* Remove versioned H2
* Build fix
* Avoid memory issue in validation tests
* JDK bump
* Restore compile with errorprone
* Force coloured output
* Force jansi
* Try again to force jansi
* Fix for hardcoded date that just passed
* Fixes to JPA
* Improve changelog
* Work on failing test
* Test fix
* Compile fix
* One more version bump
* Test fixes
* some fixmes to start
* Added some FIXMEs
* added RequestPartitionId to reosurceDelivryMessage and ResourceModifiedMessage
* ResourceDeliveryMessage and ResourceModifiedMessage tests
* fixed issue with test missing partitionHelperSvc mocked bean
* Added tests and implemented SubscriptionMatchingSubscriber for partition aware subscription
* modified implementation of partitionId in CanonicalSubscription
* Moved PartitionablePartitionId, and refactored all calls to getUserData(Constants.RESOURCE_PARTITION_ID) and setUserData(Constants.RESOURCE_PARTITION_ID)
* Revert "Moved PartitionablePartitionId, and refactored all calls to getUserData(Constants.RESOURCE_PARTITION_ID) and setUserData(Constants.RESOURCE_PARTITION_ID)"
This reverts commit fe40fb9733.
* Got added partitionId to subscriptions, added changes to make SubscriptionMatchingSubscriberTest work
* added SubscriptionTriggering test, also added partition support to subscriptionLoader
* Changed implementation for storing partition id of subscriptions from messages, refactored tests to new implementation
* added all subscription systemRequestDetails with all partition to subscription reader
* refactored a generic system request details with default all partition request
* Added test for dao subscriptions, fixes to get the test working
* added partition support for latest version delivery
* added doc changes and changelog for multitenancy subscription
* cleanup and added partitioned subscription manually trigger test
* fixed mocked subscriptionDao
* added package-info for subscription module
* some code review changes
* removed AllPartitionSystemRequestDetail, added new text for multitenant subscription
* renamed method for code review
* version bump to 5.7.0PRE7
Co-authored-by: Michael Buckley <michael.buckley@smilecdr.com>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
Co-authored-by: Long Ma <long@smilecdr.com>
Co-authored-by: Steven Li <steven@smilecdr.com>
* move mail config to mail service constructor
* update subscription email sender
* added license text
* [2669] bump HAPI version to 5.7.0-PRE6-SNAPSHOT
* add changelog
* First cut at multithreading bundle validation
* javadoc
* change test to a red-green test
* add daoconfig
* move bundle concurrency config from validationsupport to request validator
* Moved concurrent details from ValidationOptions to FhirValidator
* Remove bundleValidationThreadCount (it's set by creating an appropriate executor)
* validate threadpool prefixes
* FIXME cleanup
* reassign FIXMEs to JB
* only create the threadpool if it will be used
* Add the MdcTaskDectorator to all threadpools
* Add bundle path to concurrently validated bundle resource validation messages.
* Add test to check bundle entry path being added to validation messages
* Threaded validation of contained resources initial checkin
* FHIR validator refactored to maintain correct bundle path and async validation task
* Refactored to use validation complete invoke callback to support raw string resource or resource object
* switch from XML to JSON
* # Conflicts:
# hapi-fhir-base/src/main/java/ca/uhn/fhir/validation/FhirValidator.java
# hapi-fhir-validation/src/test/java/org/hl7/fhir/r4/validation/FhirInstanceValidatorR4Test.java
* Updated to use new HAPI-FHIR version
* merge 'validate_contains_change' into issue-3144-multi-threaded-bundle-validation
* Updated to use new HAPI-FHIR version
* Revert "Updated to use new HAPI-FHIR version"
This reverts commit 910b7f676b.
* Revert "merge 'validate_contains_change' into issue-3144-multi-threaded-bundle-validation"
This reverts commit c7d60fc3e6.
* Revert "Updated to use new HAPI-FHIR version"
This reverts commit aa8a7af455.
# Conflicts:
# hapi-fhir-validation/src/test/java/org/hl7/fhir/r4/validation/FhirInstanceValidatorR4Test.java
* Fix Test dependencies after reverting changes.
* merge 'validate_contains_change' to 2564-contained-resource-validation-flag
* Disable threadpool prefix name validate check.
* merge master
* fix thread regexp
* pre-review cleanup
* change log
* fix test
* revert to XML as default validation serialization
* fix test
* fix test
Co-authored-by: Jaison B <jaisonb@gmail.com>
* Synthea perf work
* Cleanup
* Work on performance
* Ongoing perf work
* More perf work
* Perf work
* Test fixes
* Updates
* Test fix
* Test fixes
* Clean up tests
* Test cleanup
* Cleanup
* Add test
* One more perf tweak
* Fixes
* Add changelog
* Add changelog
* License header update
* License header updates