Commit Graph

4174 Commits

Author SHA1 Message Date
James Agnew 471335341a Merge branch 'master' of github.com:jamesagnew/hapi-fhir 2018-11-19 17:25:14 -05:00
James Agnew 4fb81d5ee3 Adjust for spring5 in thymeleaf 2018-11-19 17:24:54 -05:00
Ken Stevens 03ebcafdf5
In-memory matcher (#1116)
* 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
2018-11-19 16:19:52 -05:00
James Agnew 45a5db6fd8 One more fix 2018-11-19 13:31:01 -05:00
James Agnew 8da189334d One more build fix 2018-11-19 13:08:17 -05:00
James Agnew 6a08e46f76 Correctly handle response streams in JAX-RS client 2018-11-19 12:57:48 -05:00
James Agnew 5d6491b4e4 One more fix to build 2018-11-19 10:59:19 -05:00
James Agnew 719339fc14 One more test fix 2018-11-19 10:27:16 -05:00
James Agnew 2e1d5e4124 Fix an occasional NPE in the tests 2018-11-19 09:56:40 -05:00
jamesagnew 8ec1c1a011 Work on failing tests 2018-11-19 08:24:11 -05:00
jamesagnew bf8f26bc5f Work on bugfixes 2018-11-19 05:49:05 -05:00
James Agnew 58388bb614 Allow client to return methodoutcome instead of resdource for operation
call
2018-11-19 11:11:49 +01:00
James Agnew 67dbc802be Better detection of binary content in ResponseHighlighterInterceptor 2018-11-18 14:32:54 +01:00
James Agnew fad53c6669 Fix a test 2018-11-16 13:15:14 +01:00
James Agnew 6a6451f694 Reduce number of queries on some DB operations 2018-11-16 12:41:50 +01:00
James Agnew 0d0f67b299 Add GraphQL support to public server 2018-11-16 11:41:39 +01:00
jamesagnew 17d8f78c9f Merge branch 'master' of github.com:jamesagnew/hapi-fhir 2018-11-16 05:20:38 -05:00
James Agnew e45af1506c Update spring template 2018-11-16 11:20:21 +01:00
jamesagnew e61aeea85a Merge branch 'master' of github.com:jamesagnew/hapi-fhir 2018-11-16 05:16:27 -05:00
James Agnew 1de0ef405c Clean up test compile and reenable GraphQL on hapi.fhir.org 2018-11-16 11:15:44 +01:00
James Agnew e4f6b3e9a2 Add a warning if an invalid class is scanned 2018-11-16 10:42:21 +01:00
James Agnew 14c0a52831 Fix xml typo 2018-11-16 09:21:53 +01:00
James Agnew 4b099cf057 Fix #944 - NPE when using a custom resource class that has a @Block
child
2018-11-15 16:11:55 +01:00
James Agnew 02b23d74fd
Merge pull request #1117 from magnuswatn/logformatfix
Fixed small log formatting error in ExceptionHandlingInterceptor.java
2018-11-15 13:38:07 +01:00
James Agnew e75d2e1f10 Credit for #1117 2018-11-15 13:37:32 +01:00
Magnus Watn 52265d248f Fixed log formatting error 2018-11-15 12:14:33 +01:00
James Agnew 84acafe3af Streamline expunge operation 2018-11-15 11:37:16 +01:00
James Agnew 75210d614b Bump to 3.7.0-SNAPSHOT 2018-11-12 22:37:52 -05:00
James Agnew 0ec8d942a6 Merge branch 'master' of github.com:jamesagnew/hapi-fhir 2018-11-12 12:28:24 -05:00
James Agnew bbcbcbf5d6 Don't hardcode commons-compress version 2018-11-12 12:26:17 -05:00
jamesagnew cc57bacab8 Version bump to 3.7.0-SNAPSHOT 2018-11-12 10:07:28 -05:00
jamesagnew 31bd2186ce Update changelog 2018-11-12 09:47:17 -05:00
jamesagnew cbc6f22329 Documentation updates 2018-11-12 09:21:09 -05:00
James Agnew 63af04a7b4 Prepare for 3.6.0 release 2018-11-12 05:40:55 -05:00
James Agnew cb00512522 Credit for #1047 2018-11-11 17:08:30 -05:00
James Agnew e5b04710ea Version bump a few dependencies 2018-11-11 17:06:40 -05:00
James Agnew 023877e09f
Merge pull request #1047 from hdconradi/null-pointer-in-date-range-param
Fix NullPointerExceptions in DateRangeRaram
2018-11-11 17:02:27 -05:00
jamesagnew 030b33a0f2 Merge branch 'master' of github.com:jamesagnew/hapi-fhir 2018-11-09 15:59:34 -05:00
jamesagnew 4a0c45a494 License updates 2018-11-09 15:59:23 -05:00
James Agnew c81a59bb9a Only use FHIRPath to validate searchparameterr paths in R4 2018-11-09 15:57:34 -05:00
James Agnew 7f6f06dddf Merge branch 'master' of github.com:jamesagnew/hapi-fhir 2018-11-09 15:47:22 -05:00
James Agnew 5834e6aa62 Test fixes 2018-11-09 15:32:55 -05:00
jamesagnew 3942f1bb29 License header updates 2018-11-09 14:41:57 -05:00
James Agnew f61df5c3fe Use FHIRPath expression parser for custom SP validation 2018-11-09 14:41:20 -05:00
James Agnew b32e232eb2 A bit of client tweaking 2018-11-08 17:10:39 -05:00
James Agnew e5cff0041d Merge branch 'master' of github.com:jamesagnew/hapi-fhir 2018-11-08 15:47:00 -05:00
James Agnew 01c7618867 Failing test cleanup 2018-11-08 15:46:49 -05:00
jamesagnew a3e79b5759 License updates only 2018-11-08 15:28:09 -05:00
James Agnew 82ec721c99 Allow client defined parameter style for _format param 2018-11-08 15:27:35 -05:00
James Agnew 3ae5f9a3b7 Build tweak 2018-11-08 14:04:21 -05:00