* feat: Introduce hapi-fhir-client-apache-http5 module for Apache HttpClient 5 support
- Added a new module `hapi-fhir-client-apache-http5` to provide HAPI FHIR Client functionality using Apache HttpClient 5.
- Supports gradual migration from HttpClient 4 to HttpClient 5.
- Aligns with Spring Boot 3.0's adoption of HttpClient 5, enabling consistent HTTP client configuration for users of both libraries.
Key Changes:
- Integrated Apache HttpClient 5 for modern, high-performance HTTP requests.
- Ensured compatibility with existing `hapi-fhir-client` and `hapi-fhir-client-okhttp` modules.
- Added basic tests to validate functionality and coexistence of HttpClient 4 and 5.
Impact:
- Non-breaking change; the new module can be adopted independently.
- Facilitates eventual migration of HAPI FHIR to HttpClient 5 across the codebase."
* Add new error codes to the apache-httpclient5 client module.
* FQL tests
* Working so far
* Tests working
* Tests passing
* Work on parser
* Tests passing
* Cleanup
* Working
* Work on parser
* Work
* Working
* Work on tests
* Work on driver
* Work
* Ongoing work
* Rename SEARCH to WHERE
* Work on fhirpath
* Test fixes
* Work on statements
* Build fixes
* Spotless application
* Fix CI
* Build fixes
* Clean up changelogs
* Remove redundant gitignore
* Add docs
* Add docs
* Code cleanup
* Build cleanup
* Fix compile error
* Test fixes
* Test fix
* Test fix
* Work on integration
* Work on design
* Work on UI
* Update hapi-fhir-jpaserver-hfql/src/main/java/ca/uhn/fhir/jpa/fql/jdbc/JdbcDriver.java
Co-authored-by: michaelabuckley <michaelabuckley@gmail.com>
* Address review comments
* Review comments
* HFQL work
* Cleanup
* CLeanup
* License headers
* Test fixes
* HAPI version bump
* License header update
* Changelog cleanup
* Fixes
* Test fix
* Fix spotless issues
---------
Co-authored-by: michaelabuckley <michaelabuckley@gmail.com>
* enforce no exceptions on the invoking thread in PointCutLatch
* comment
* Msg.code
* Catch exceptions outside of await block
* fix migration issue
* Refactor PointcutLatch and add tests
* fix tests
* fix tests
* fix tests
* fix test
* fix test
* fix test
* fix test
* fix test
* fix test
* fix test
* fix test
* fix test
* fix test
* fix test!
* fix test!
* fix test
* fix test
* clean up latch error formatting
* fix test
* fix test
* fix test
* fix test
* fix test
* fix tests
* fix test
* fix test
* Remove hapi-fhir-jpaserver-uhnfhirtest from build as it is crashing CI
* fix test
* fix intermittent
* A SNAPSHOT dependency on an upstream module was added to HAPI FHIR, which changed and caused some downstream tests to break.
* fix intermittent
* Add Maven enforcer plugin for CR dependencies
* Make maven enforcer conditional on CI builds
* Remove hapi-fhir-jpaserver-uhnfhirtest from build as it is crashing CI
* improve test logging
* pre-review cleanup
* review feedback
* remove hapi-fhir-base-test-jaxrsserver-kotlin from the build
---------
Co-authored-by: Ken Stevens <ken@smilecdr.com>
Co-authored-by: Jonathan Percival <jonathan.i.percival@gmail.com>
* A SNAPSHOT dependency on an upstream module was added to HAPI FHIR, which changed and caused some downstream tests to break.
* Add Maven enforcer plugin for CR dependencies
* Make maven enforcer conditional on CI builds
* cleaning up checkstyle files
* added exlusions for files at base project level so checkstyle doesn't error out
* duplicate error code from merge
* One more fix for #4467
* changing lifecycle goal for all module checkstyle check
* moving checkstyle to base pom file, changing exectution phase on base check, cleaning dependency, resolving duplicate error code
* wip
* trying to figure out why pipeline cannot copy files
* removing modules that don't actually need to be built.
* I messed up the version
* missing model
---------
Co-authored-by: James Agnew <jamesagnew@gmail.com>
* Add new Clinical Reasoning module
* Add config to get test up and running
* Removed FhirClient from tests
* First passing test
* Remove unused utilities
* Build updates
* exclude xxp3 and substitute with unbundled version
* Refactor to use provider factory and loader pattern
* First passing dstu3 test
* CR r4 test config and immunization tests
* Add base test classes
* Exclude transitive dependency xmlpull
* More dependency cleanup
* Refactor to remove JPA dependencies, rename module to hapi-fhir-storage-cr
* Fixes for duplicate xpp3 classes
* Remove more references to jpa
* Add mock FHIR server for terminology endpoint tests
* fix cql file for making providerr4 tests pass
* fix pom
* fix generic
* Adding r4 test cases for measure operations.
* Fix endpoint tests
* javadoc comment, temporarily comment out test results for practitioner sync
* javadoc typo fix
* adding java docs for cr module WIP
* Updates to clinical reasoning documentation
* More documentation updates
* docs now compile
* fix test
* DqmR4IT now successfully starts up, but the test does not pass
* Fix additionalData test
* Make measure service bean overridable
* adding clinical reasoning javadoc information
* Rename interfaces to start with I
* More styleguide updates
* Reformat all code in the storage-cr module
* More coding convention updates
* Remove bunches of unused code, reogranize so that fhir version in package name is consistent
* Clean up some static array initializations
* add practitioner patient list
* refactor product-line constant
* test dependency update
* add change log for cr module
* Add hapi-validation to the pom
* Exclude dependencies that are causing duplicates
* More dependencies and exclusions
* Make some base MeasureService components protected
* Update to latest cql compiler release
* fix measure service for null subject & practitioner and open up practitioner test
* Rev to release versions
* Add remaining Dstu3 tests
* update hedis bundle from policyHolder to beneficiary
* update snapshot
* Delete old CQL module
* Post-master-merge recovery
* Fix Java 17 feature usage issue
* update changelog with more information about new functionality
* Remove support chain wrapper usage
* Add javadocs to IResourceLoader
* added the property versioning for antlr jar.
* addressing code review comments.
* addressing code review comments.
* Fix typos in changelog
* Remove azure pipeline for cql module, add it for cr module
* Address exception comments, add Msg.code calls to exceptions
* Fix self-assignment bug
* Add storage-cr module to bom
* addressing coding comments.
* Addressed the variable naming convention to camelCase.
* Snapshot version bump
Co-authored-by: Brenin Rhodes <brenin@alphora.com>
Co-authored-by: Jonathan Percival <jonathan.i.percival@gmail.com>
Co-authored-by: justin.mckelvy <justin.mckelvy@smilecdr.com>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
Co-authored-by: Chalma Maadaadi <chalma@alphora.com>
Co-authored-by: mdnazmulkarim <nazmul.karim@smilecdr.com>
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
* Extracting a Cache interface and building service loaders for Caffeine and Guava
* Fix estimated size interface
* Use LoadingCache when needed.
* Removing Caffeine from dependency lists.
* Adding hapi-fhir-cache-caffeine as a test dependency
* Putting caching solutions in a single module.
* Fixing the spacing
* Standardizing the use of TimeUnits
* Making a new module to simplify the switch of the cache library in tests.
* Making sure the Guava design matches the behavior of Caffeine.
* Making sure the Cache structure also does not throw InvalidCacheLoading exception to match the LoadingCache.
* Renaming module names for the caching group.
* Better error handing that informs devs what to do.
* Improving documentation
* Typo
* Matching error message design with Caffeine.
* Matching the behavior of Caffeine with Guava
* Final adjustments for the test dependencies on the cache modules.
* Fixing relative pom path.
* Adding caffeine as a testing requirement for the new modules.
* Add changelog and set JPA server to use caffeine cache
* POM fixes
* Build fix
* Buid fix
* Fixes
* Address review comment
* One more cache
* Move changelog to next release
* Update pom versions
* Build fix
* Build fixes
* Build fix
* Try to get build working
* Experiment with failing build
* Rever change
* Fix POM version
* Build fix
* Build fix
* Add Msg.code to new exceptions
Co-authored-by: Vitor Pamplona <vitor@vitorpamplona.com>
* Add r4b stuff
* Work on R4B
* Core version bump
* Revert some changes
* Add R4B
* Docs
* Test fixes
* Work on R4B
* Tests passgin
* Add config
* Work on merging
* Work
* Work
* Work
* Test fix
* Fixes
* Test fixes
* Test fix
* Work
* Work
* Fixes
* Test fixes
* Fixes
* Test fix
* Test fix
* Test fix
* Version bump
* Test fix
* Test fix
* ompile fixes
* Fix
* Resolve build warnings
* Updates
* Test fixes
* Fix docs
* remove spring batch
it compiles
expect test failures
* fix test transaction manager bean name (wow that was quite the hunt the wumpus!)
* fix test and fix build
* fix test and fix build
* fix test
* remove spring batch schema initialization
* bump hapi version
* fix schema migrator
* bump to PRE-10
* merge master
* change logs
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* create fhir-version specific hapi-fhir-jpaserver-test projects
* moved dstu2 tests out to dstu2 test project.
* moved dstu2 tests out to dstu2 test project.
* finished moving dstu2 tests out to dstu2 test project.
* finished moving dstu2 tests out to dstu2 test project.
* dstu3 test project compiles
* start moving dstu3 resources
* letting azure pileine know about the new modules
* finished moving dstu3 resources. this might pass
* OK this one should pass for sure
* OK this one should pass for sure
* change test poms to test scope
* move the rest of R4 test classes
* move the rest of R4 test classes
* moar r4 moves
* moar r4 moves
* moar r4 moves
* finished with r4
* finished with r4
* started r5
* started r5
* Cache busting based on source branch name
* Fix other cache key
* cache pegged to SHa1
* test cleanup
Co-authored-by: Ken Stevens <ken@smilecdr.com>
Co-authored-by: markiantorno <markiantorno@gmail.com>
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
This PR changes the way HAPI is built by Azure pipelines. Instead of a FIFO queue for all tests in the project, the entire project is quickly built and cached without testing, then the individual modules are built and tested in separate jobs which can be run in parallel from each other. Each of these jobs then uploads the test coverage for that module as a build artifact. Finally, a last stage downloads all the archived tests results and aggregates them using jacoco so they can be uploaded to codecov.
This has two key benefits:
If there is a failing test because of an intermittent, the individual failing module can be re-run instead of having to re-run the whole project build.
The build time is decreased substantially (90min -> 45min).
This is the first run at this, I will be iterating to further reduce build times going forward.
* Refactor to restore LGTM functionality
* Compile fix
* Work on cleanup
* Attempt to restore LGTM
* Work on tests
* Fixes
* Build fixes
* Build fix
* Test fix
* Test fixes
* Work on build
* License header updates
* Test fixes
* Test fixes
* License header
* Test fix
* Test fix
* Test fixes
* Restore LGTM
* Fix azure
* Disable test
* Test fixes
* Test cleanup
* Build fix
* Build fix
* Test fix
* Test fix
* Test fixes
* 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
* Beginning work on converting to hibernate search 6
* replace all out of date properties
* replace all POM references to old versions
* remove the shaded ES jars as HS6 supports 7.9
* Convert "Bridges" to RoutingBinder and RoutingBridge
* Modernize all indexing annotations
* Begin refactoring of search queries (wip)
* Fix spatial API changes, work on BaseTermReadSvcImpl
* Most of the way through the various filter property conversions
* Finished i think with BaseTermReadSvcImpl
* Compiling, but definitely broken
* Start test compilation failures
* All tests compiling (i think)
* remove suggest keywords operation
* Fix bootstrap errors, still have to deal with transient fields
* Rollback CR
* More refactoring, got IDs baked back into docs
* Fix coord util, fix a few more fields which require projection
* merge fixes
* begin refactor of valuesetexpansion tests
* fix another test
* Update tests
* remove todos, add TestContainers
* Fix descendant in
* Add testcontainers, fix another test
* fix more tests, replace embedded es
* Rip out embedded elastic, replace with TestContainer
* merge conflicts for new analyzers
* Bump to CR2 for hibernate search 6. Add forgotten CLI dep. Add backwards compatible codecs
* Remove dead deps, update testcontainer
* Remove java-hamcrest
* Pull asserts up, refactor tests to pass in RP tests
* Update V2 check
* Remove suggest keyword tests
* Split line for testing
* Fix perhaps one of the dumbest programming mistakes in my career so far
* Refactor tests which no longer rely on a strict known order
* Fix up test config, disable log test temporarily
* Remove log4j from being transitively pulled in. re-enable test
* Update log4j exclusions with new bridge. Update test to check for core class
* Move dependency to root pom in dep management section
* Update changelog, add changelog for HS6 with ES requirements. Remove dead comment
* update testst, remove todos
* Add hibernate props provider method, add elastic regexp query
* Add todo for high level client builder
* Modify ElasticsearchRestClientFactory to support HTTPS hosts
* Remove protocol extraction from rest url
* do we even need to index this...?
* remove purge of non-indexed resources
* Add longer timeout to testcontainers
* Add task to add docker CLI to azure pipeline via task, for testcontainers
* WIP remove this
* Dont update version
* Add test for duplicate termconcepts
* Use real hibernate ORM methods
* merge issues
* Add partitionsettigns bean to match master
* Trying to debug testcontainers on azure...
* Trying to debug testcontainers on azure...
* Run even on previous failure
* Fix testcontainer port binds
* Add full text logs attaching, and test reporting
* I love yaml
* Remove comment
* Refactor delta remove to not do a once-over traversal and flatten all children pre-delete. Resolves transaction commit boundary issue
* Modify TX beheaviour
* wip
* Rework to use config and mocked beans for partition-aware lastN
* rework to not use beans and just inject vars i need for test, keps test envs cleaner
* update azure pipeline to only copy test results
* Remove erroneous publish
* Always get test logs
* Make it so indexing works,
* Add todos
* revert deleteByPid
* Work on test fixes
* Test fixes
* Test fixes
* Another test fix
* Test fix
* Work on tests
* Test fixes
* All tests passing locally
* Fix test failure
* FIx build error
* Rename usages of HibernateDialectProvider -> HibernatePropertiesProvider
* Update ngram of token filters
* Tidying
* subvert the purpose of hibernate elastic props builder to inject template
* dead space
* Rename changed class
Co-authored-by: jamesagnew <jamesagnew@gmail.com>
* Add auto retry of transactions
* Experiment in Maven build
* Transaction autoretry
* Work on transaction retries
* Work on transaction retry
* Work on transaction retry
* Fix tests
* Avoid version conflicts
* Add changelog
* Resolve LGTM issue
* FIx transaction scope error
* Test fixes
* Test fix
* Test fixes
* Test fix
* Test fixes
* Start working on FHIRPatch
* More work on fhirpatch
* Work on FHIR Patch
* Add patch
* Test fixes
* Test fixes
* Get tests fixed
* Chnage to trigger a build
* Compile fix
* Dependency version fixes
* Test fix
* COmpile fix
* Try to fix build
* Test fix attempt
* Another build attempt
* Another build tweak
* Cleanup
* Copy identifiers to placeholder resources
* Add tests
* Maven cleanup
* Still messing around with azure
* Adding to logging
* More azure work
* One more attempt
* More messing around with azure
* Test fix
* Another caching attempt
* More work on azure pipeline
* Fix pipeline file
* Keep working on pipeline
* More work on azure
* More azure
* More azure work
* More azure
* Some CI surefire improvements
* Build tweak
* More tweak
* Update azure-pipelines.yml for Azure Pipelines
* Update azure-pipelines.yml for Azure Pipelines
* One more CI attempt
* Update azure-pipelines.yml for Azure Pipelines
* Tweak command line
* Another build test fixc
* More build cleanup
* Terminology Delta Uploading
* Add delta operations
* Fix up tests
* Improve test coverage a bit
* Improve test coverage reporting
* fix yaml
* A couple of test enhancements
* FIx intermittent test failure
* Work on failing tests
* Temporary downgrade of fhir core
* Work on failing build
* Fix pom
* Don't upload codecov
* Restore codecov
* Restore all tests
* Keep hammering away at intermittent test failures
* More test fixes
* Keep chipping away at these...
* Add some extra checks
* Work on tests
* More test logging
* More logging
* This might be it!
* Final build fixes?
* Address some review comments
* A couple more corrections
* Add some logging
* Add more test logging
* Work on some test logging
* Fix compile error
* Work on codecov
* Work on codecov
* Remove test debug messages
* Set up CI with Azure Pipelines
[skip ci]
* Update azure-pipelines.yml for Azure Pipelines
* Skip tests for a build
* Work on pipeline
* Update azure-pipelines.yml for Azure Pipelines
* Interceptors docs
* Test fix
* Disable releases from snapshot repo
* Try disabling jitpack
* Fix dependency issue
* A couple of test fixes
* Change to trigger a build
* Force a change to trigger a build
* Force a build
* FIx test