* 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>
* issue-1134 initial work on adding retry handler
* issue-1134 subdscription creation fixes
* issue-1134 update the test
* issue-1134 retry policy off canonicalsubscription
* issue 1134 base subscription changes
* add failing test
* issue 1134 retry configs on base parameters
* issue 1134 passing forward params
* issue-1134 added more tests for making sure subscriptions create their channels correctly
* issue-1134 updates to get the retry to channels
* issue-1134 updating channel factory
* issue-1134 remove the dlq since it's not defineable
* issue-3120 changelog added
* issue-3120 cleaning up
* issue-3120 test fix
* issue-3120 review fixes
* issue-3120 fixed bad master merge
* issue-3120 updates for new release
Co-authored-by: leif stawnyczy <leifstawnyczy@leifs-MacBook-Pro.local>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
* issue-1134 initial work on adding retry handler
* issue-1134 subdscription creation fixes
* issue-1134 update the test
* issue-1134 retry policy off canonicalsubscription
* issue 1134 base subscription changes
* add failing test
* issue 1134 retry configs on base parameters
* issue 1134 passing forward params
* issue-1134 added more tests for making sure subscriptions create their channels correctly
* issue-1134 updates to get the retry to channels
* issue-1134 updating channel factory
* issue-1134 remove the dlq since it's not defineable
* issue-3120 changelog added
* issue-3120 cleaning up
* issue-3120 test fix
* issue-3120 review fixes
* issue-3120 fixed bad master merge
Co-authored-by: leif stawnyczy <leifstawnyczy@leifs-MacBook-Pro.local>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
* Add tests. Add implementation in R4. Add changelog
* Wip partial fixup of other STU versions
* Updated usages of new patient type everything api
* Partial commit of incomplete documentation
* Remove docs
* Cut to token instead of string
* Bump hapi version due to breaking api changes
* Migration finished
* Work on LOBS
* Add to ClobMigrated annotation
* Deal with lobs
* Work on new approach
* HAPI FHIR version bump
* Add changelog
* Add license header
* Fix intermittent
* CLeanup
* Cleanup
* first pass moving core storage classes to storage-api
* move term service apis
* nearly done
* rename hapi-fhir-storage-api to hapi-fhir-storage and move transaction processor
* rename hapi-fhir-storage-api to hapi-fhir-storage and move transaction processor
* create new SearchConstants class to store platform independent search constants
* move a couple of subscription services
* move transaction processor adapter to storage
* version bump
* move searchparam
* fix test
* fix compile includes
* fix text
* fix docs
* Avoid dead SearchParameter links in CapabilityStatement
* Resolve fixmes
* Build fix
* Test fix
* Test fix
* Test fix
* Work on metadata
* Fixes
* Test fixes
* Test fix
* Test fix
* Test fixes
* Test fix
* Work on test fixes
* Test fixes
* Test fixes
* Test fixes
* Test fix
* Fix params
* Resolve fixme
* Adjust changelogs
* Version bump to 5.6.0-PRE7
* Add license header
* Bump version to 5.6.0-PRE5-SNAPSHOT
* initial roughout of mdm clear batch job
* still roughing out classes
* finished first draft of reader
* most tests passing now
* all tests pass. now FIXMEs
* FIXMEs done. Time for regression.
* fix test
* changelog and docs
* fix test
* pre-review cleanup
* version bump
* move spring autowire deps for cdr
* move spring autowire deps for cdr
* finally got beans working phew
* rearrange method calls so persistence module can perform clear operation on its own
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa_mdm/mdm_operations.md
Co-authored-by: Tadgh <tadgh@cs.toronto.edu>
* review feedback
* review feedback
* Remove inheritance
* fix beans
Co-authored-by: Tadgh <tadgh@cs.toronto.edu>
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
* prepare to add $delete-expunge operation that will create a spring batch job
* Add operation
* Wire up jpa provider. Begin with failing test.
* Copy/paste bulk import job as a starting point.
FIXME with proposed design
* delete expunge job parameter validation with test
* implemented reader
stubbed processor, writer
* wip for master merge
* started implementing reader
* started implementing reader
* working with stubs
* happy path batch delete expunge is done
* Provider done but test not passing. Guessing batch infrastructure not running in that test.
* IT test works now
* add reader test
* Converted delete _expunge=true to use new batch job
* DeleteExpungeDaoTest passes
* Fix test
* Change batch size to integer
* rename search count to batch size
* Make delete expunge partition aware
* updated docs
* pre-review cleanup
* change log
* add partition id to SystemRequestDetails
* Make RequestPartitionId serializable
* Change delete expunge provider to use partition id instead of tenant name
* fix tests
* test pointcut gets called
* assert on pointcut calls
* Add resource type to STORAGE_PARTITION_SELECTED pointcut
* bump hapi-fhir version
move expunge provider parameters from JpaConstants to ProviderConstants
* bump hapi-fhir version
* copyrights
* restore deleteexpungeservice for mdm
* restore deleteexpungeservice for mdm
* fix test
* public constants
* convert instant to date
* Moved expunge constants to ProviderConstants
* final review
* disabling InMemoryResourceMatcherR5Test.testNowNextMinute() to see if I can get a clean test run
* fix tests
* fix tests
* fix tests
* fix tests
* review feedback
* review feedback
* review feedback
* review feedback
* review feedback
* review feedback
* improve logging
* bump version
* version bump
* recovering from failed merge
* unzip RequestListJson per Gary's suggestion. I didn't want to do it at first, but as usual Gary was right.
* fix serialization
* Start work on OpenAPI
* Fixes
* Work on OpenAPI
* Cleanup
* Cleanup
* More swagger work
* Build fix
* More work
* More work
* Add documentation
* Docs fixes
* Add changelog
* License updates
* Add API
* Cleanup
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_plain/openapi.md
Co-authored-by: patrick-vachon-smilecdr <81274188+patrick-vachon-smilecdr@users.noreply.github.com>
* Work on scripts
* Add docs
* Compile fix
* Work on fixes
* Fix tests
* Test fix
* Test fix
* Build fix
* Tests
* Build fix
* Work on pipeline
* Version bump
* Test fix
* Version bump
* Test fix attempts
* Test fix
* Test fix
* Remove accidentally committed files
* Fixes
* Tets fixes
* Test fix
* Test fix
* Test fix
* Test fixes
* Test fixes
* Test fixes
* License header updates
* test fix
* Test fixes
* Test fix
* Test fixes
* Test fix
* Checkstyle bump
Co-authored-by: patrick-vachon-smilecdr <81274188+patrick-vachon-smilecdr@users.noreply.github.com>
* Start work on bul;k import
* Work on bulk import
* Have batch working
* Working
* Working
* More work
* More work on bulk export
* Address fixmes
* License header updates
* Test fixes
* License header updates
* Test fix
* Test fix
* Version bumps
* Work on config
* Test cleanup
* One more version bump
* Version bump
* CLeanup
* A few additions
* Test fixes
* Test fix
* Test fix
* Migration fix
* Test fix
* Test fix
* Search param service cleanup
* Work on collapsing search param
* Search param cleanup
* Work on build
* Test fix
* Test fixes
* Ongoing work
* Test fix
* Compile fix
* Test fixes
* Test fix
* Test fix
* License header updates
* Remove fixme
* Cleanup
* Cleanup
* Work on junit
* Work on junit 5
* Work on junit 5
* Bump errorprone vcersion
* Work on tests
* Junit 5 tweaks
* Fixes
* Work on tests
* Work on junit5
* Work on tests
* Test fixes
* Work on junit5
* Test work
* Get junit5 working
* Test fix
* Work on tests
* WOrk on tests
* Work on tests
* fixes
* Compile fix
* One more tweak
* Compile fix
* Add changelog
* Fix compile error
* Compile fix
* Validation enhancements
* Work on validation api reworking
* Keep working on validation API
* Keep working on new term API
* Work on validation api
* Ongoing work on validation
* Work on integrating validation
* Work on validation API
* Add to validation API
* Work on validation
* Work on API
* Work on validation
* Work on validation API
* Work on validation API
* Work on validation api
* Work on validation API
* Work on validation api
* Validation API changes
* Work on API
* More work on validationo API
* Work on validation API
* FIxes
* WOrk on validation api
* Work on validation API
* Tests passing!
* More cleanup
* More validation API changes
* Fix intermittent test failure
* Package reorg
* Validation API work
* Work on doocumentation
* Work on API
* More work on new validation API
* Fix errorprone-reported error
* Test fixes
* Documentation updates
* Documentation tweaks
* Work on API
* Bean name adjustments
* Build fixes
* Some test fixes
* Fix expunge issue when no tags present
* Add changelog
* Try to clean up POMs that are failing CI
* Rework dependencies
* Roll back change that did not work
* Fixed a bug in standalone subscription subscriber: It was adding REQUESTED subscriptions to the active subscription registry. (Only ACTIVE subscriptions should be added.)
* Reorganizing packages and dependencies to support standalone subscription running within a CDR container where all hapi modules are on the classpath.
Moved Subscription registry out of interceptor and introduced SubscriptionLoader
* Created ActiveSubscription and moved cache bits into it
* Moved ExecutorQueue stuff out into its own class
* Add test and supporting code to validate SubscriptionConstants.EXT_SUBSCRIPTION_RESTHOOK_DELIVER_LATEST_VERSION behaviour
* Added SubscriptionCheckingSubscriber
* Moved a few beans to @ComponentScan
* Replaced use of beanFactory with concrete factory classes
* Switched test to use subscribablechannel
* Added SubscriptionLoaderFhirClientTest
* Confirm that our SubscriptionProviderFhirClient works with a live fhir client
* Register interceptors with DaoConfig instead of RestServer.
Also, Rename @VisibleForTesting methods with ForUnitTest
* Fix triggering service so it uses new subscriptionmatcherinterceptor
* Renamed "Database" classes to "Dao"
* processing -> matching naming change
* Initial refactoring to move database matcher out into its own class
* MAJOR REFACTOR: Pulled indexing code out of BaseHapiFhirDao into a new class ResourceIndexedSearchParams
* Moved calculateHashes
* Replaced @Bean definitions in BaseConfig.java with @ComponentScan
Annotated bean classes with either @Service (if it's stateless) or @Component (if it's stateful). It doesn't really matter which annotation is used, but it's helpful to see at a glance whether a bean is stateful or stateless.
* Move services out of BaseHapiFhirDao
Moved services required by ResourceIndexedSearchParams out of BaseHapiFhirDao and into new classes called LogicalReferenceHelper, IdHelperService, MatchUrlService, and DaoProvider.
Converted SearchBuilder into Prototype Bean
Mark Spring components that depend on daos and entitymanagers with @Lazy so they aren't picked up by hapi-fhir-spring-boot-autoconfigure.
* Added SubscriptionMatcherInMemory
Moved static data out of BaseHapiFhirDao into ResourceMetaParams
Moved translateMatchUrl methods out of BaseHapiFhirDao into MatchUrlService bean
Simplified SubscriptionMatcherInMemory to not depend on entity or dao
Turned all subscribers into prototype beans
* Moved searchParam method out to mySearchParamProvider
Also removed dao and contest parameters from of myMatchUrlService methods
Moved code out of SearchBuilder into SearchParameterMap.clean() so it can be used by inMemoryMatcher
Introduced a new composite subscription matcher that tries to match in memory and if it finds a parameter in the criteria it doesn't support, it falls back to the database matcher.
* Added support for references
Also fixed a small bug in SearchParameterMap that was missing the ";" after "_has" when creating a normalized query from search params.
* Finished implementing all tests from FhirResourceDaoR4SearchNoFtTest
* Make in-memory matcher configurable, disabled by default
* Validate Subscription criteria when they're submitted
Send HTTP 422 UnprocessableEntityException if the criteria fail validation.
* fixed Sonar "Blocker" issues.
* Don't reload the resource before sending it out
Since we can always force a reload using restHookDetails.isDeliverLatestVersion
* Added tests to cover Custom Search param.
* Split ResourceIndexedSearchParam into separate state and service classes
* Cleaned up SearchBuilder.
Removed uses of myCallingDao as an injection mechanism.
Left // FIXME KHS cookie crumbs to clean up
* Reduced dependencies on BaseHapiFhirDao
Removed methods from IDao interface that were used for injection
* Updated change log