* move expunge out
* move to prototype
* turns parameters into fields
* cleanup control flow
* moved transactions outside of loops
* add expungeeverything
* moved daos out
* add expungeThreadCount
* add expungeBatchSize
* added partition runner to run in separate threads
* all done. just need to consolidate test code.
* Moar tests
* consolidated pointcutlatch into hapi-fhir-jpaserver-model
* final cleanup
* update javadoc
* change log
* failing test
* added delete
also @Transactional
* remove unused parameter
* fix compile
* race condition
(cherry picked from commit e1940d2fb20838859a205f2b96c833b0ce9f05eb)
# Conflicts:
# hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/expunge/PartitionRunnerTest.java
* ja feedback
* ja feedback
* fix bug in websocket subscription (It wasn't destroying the channel when there are no subscribers)
* add support for removing channel. Also synchronize removal (there was a race condition between sync and queue)
* keep deprecated method for backwards compatibility
* make websocket endpoint configurable
* make websocket context path configurable
* make websocket context path configurable
* trying mvn clean test instead of mvn clean install to see if the build goes faster
* that didn't work at all. reverting.
* change log
* Use a single IN clause for OR reference searches
* Add changelog
* One more attempt at getting the free port util to actually work... sigh
* One more tweak to free ports
* Bundle fix
* fix bug in ResourceIndexSearchParamQuantity
Move transaction boundary around SubscriptionMatcherInterceptor so it can be overridden in subclass
Lots of CRLF changes from a mvn -P DIST
* FIXME
* Avoid paging links when offset is artificially set very high
* Ongoing fixes
* Adding logging and clean up transaction processing
* Add changelog
* More work on queries
* Keep working on getting tests passing
* More test fixes
* More work on tests
* More test works
* One more test attempt
* Ongoing fixes
* One more change
* FIxes to search algorithm
* Add changelog
* Clean up for review
* Fixed NPE in token matcher when system is not null and value is null
* test opposite (null system not null value)
* added null protection to all matchers
* Address review comments
* Address broken test
* Trying to resolve DB ordering issues
* Starting work on this
* Working on narrative templates
* Work on new narrative system
* Account for some failing tests due to refactoring of narrative mode
* Another test fix
* More test fixes
* One more test fix
* Work on searches
* Address review comments
Squashed commit adding subscription debug logger
* Work on subscription debug logger
* Add subscription logging interceptor
* Remove unneeded variables
* A bit of cleanup
* Tweak the output logs a bit
* Address review comments
* Start work on this
* Work on interceptors
* Attempt fix
* Avoid environment dependency
* Test fixes
* One more test fix
* One more build tweak
* Lots of cleanup
* A bit more cleanup
* Still more cleanup
* Some test fixes
* Add legacy methods temporarily
* Don't auto-scan interceptor beans
* One more test fix
* rsolve merge conflicts
* Address review comments
* 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