* 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
* subscription loader now only pulls active subscriptions
only allow websocket connections to subscriptions of type websocket
* Added a "flag for deletion" to ActiveSubscription in the SubscriptionRegistry to handle the race condition of a scheduled sync overlapping with a subscription creation. We could have used a package-scoped semaphore or a pre-remove FHIR read, but this seemed like the safest, simplest and most performant way to handle it.
* ActiveSubscriptionCacheTest
* WebsocketConnectionValidatorTest
* fix compile error in jpa example