Skip to content

Commit 2426c44

Browse files
jdar8TipzCMGaryjmarchionattomrdnctrk
authored
8 2 1 mergeback (#7147)
* 6564 default partition id bug (#6917) * Revert "6564 default partition id bug (#6917)" This reverts commit 62dc506. * Fix canonicalizer concurrency exception (#6936) * Add failing test * Reduce concurrency likelihood by setting collection atomically * changelog * fix transaction partition override for post entries (#6931) * pass in entry specific request details for POST entries in a transaction * address code review comment * added test cleanup to restore defaults * restore unnamed mode in test * Rel 8 2 changelogs (#6935) * Once-over some changelogs * wip * Apply patch * onceovering * Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/8_2_0/6849-fix-fhir-chain-search-never-completing-with-count-param.yaml Co-authored-by: Nathan Doef <[email protected]> * Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/8_2_0/6769-upgraded-core-library.yaml Co-authored-by: Nathan Doef <[email protected]> * Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/8_2_0/6865-handle-dupe-resources-in-npm-packages.yaml Co-authored-by: Nathan Doef <[email protected]> * Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/8_2_0/6892-fix-patching-operation-fails-for-enumerated-fields.yaml Co-authored-by: Nathan Doef <[email protected]> --------- Co-authored-by: Nathan Doef <[email protected]> * guard recursion (#6943) * guard recursion * enhance test * change log * Automated Migration Testing (HAPI-FHIR) - updated test migration scripts for 8_2_0 (#6944) * initialize requestdetails earlier in cache synchronizer (#6940) * initialize RequestDetails earlier in BaseResourceCacheSynchronizer * added change log * update changelog description as suggested * Improve Validator Performance For Large Terminologies (#6870) * validator performance test harness * Replace VersionConvertorFactory references with VersionCanonicalizer * fix tests * clean up duplicate code * clean up duplicate code * simplify DSTU2 branch * Replace VersionConvertorFactory references with VersionCanonicalizer * fix test * clean up * spotless * test logging * simplify convertToCanonicalVersionAndGenerateSnapshot * move test harness to hapi fhir * fix package structure * clean up * loaded terminology programmatically * spotless * refactor to add more test cases * refactor to add more test cases * add testcase that requires valueset expansion * test validation using $validate and JpaValidationSupportChain * start remote terminology test case * refactor VersionSpecificWorkerContextWrapper * fix broken cache key * cache conversion from canonical * clean up * remote terminology test * remote terminology test * spotless * clean up * clean up * clean up * improve test stats * clean up metrics * clean up metrics * log individual runs * log concepts * clean up * fix test * add assertions to verify caching * changelogs * cleanup * logs * add version canonicalizer to remote terminology validator worker context * address code review comments 1 * address code review comments 2 * address code review comments 3 * Licenses * fix broken link (#6956) * Revert "Revert "6564 default partition id bug (#6917)"" (#6930) * Revert "Revert "6564 default partition id bug (#6917)"" This reverts commit 0aa6f4d. * lazy load partitionsettings and subscription cannonicalizer * version bump * more default id fixes * spotless * review fixes round 1 * review fixes 2 * spotless * adding comment * fixing tests * spotless * adding more partition ids * fixing tests * spotless --------- Co-authored-by: leif stawnyczy <[email protected]> * Jd 20250428 fix search param ordinal date timing (#6914) * fix and tests * changelog * remove todo * fix param names * remove unused/duplicated methods * address review comments --------- Co-authored-by: jdar <[email protected]> * version bump * Bump spring-boot * Temp fix release * Updating version to: 8.2.1 post release. * 7040 contained resources plusplus (#7051) * making the parser maintain a reference to the contained resource * spotless * fixing code * spotless * change to fix tests * Add test matrix * Mark contained resources on ingest, ensure that we validate existence of contained resource when we refer to one in the parser * fixing a test * fixing tests * fixing tests * removing unneeded check * review fixes * review fixes * use error handler to fix tests * spotless * fixing --------- Co-authored-by: leif stawnyczy <[email protected]> Co-authored-by: Tadgh <[email protected]> * changelogs * version bump hapi * Resolve _tag duplication and Bulk Export file size issues (#7088) * Fix duplicate tags issues * Test fix * Disable limits * Remove limit removal * Add tests * wip - adding support respect configured max number of resources per batch/file (bulkExportFileMaximumCapacity) * Slight modifications to the test asserting that the generated binary file created by batch2 resources expansion does not exceed bulkExportFileMaximumSize. * Enhance test * addressing comments from code review. * Test fixes * Make this fix only target non-dstu2 * Add tests * Test fix * Address review comments * Add changelog * Helpful comment --------- Co-authored-by: James Agnew <[email protected]> Co-authored-by: peartree <[email protected]> Co-authored-by: Gary <[email protected]> * wip: * fix backport version changelog * move to new plugin (#7075) * move to new plugin * Fix up variables * License additions * fix up some repos * Switch to new snapshot version * remove dead fixmes * Improve docs * Add info about publishing changes --------- Co-authored-by: Gary <[email protected]> * Add all missing names * Change up exclusions * reconfigure license based on names * Add more exclusions for publishing * Updating version to: 8.2.2 post release. * Spotless --------- Co-authored-by: TipzCM <[email protected]> Co-authored-by: Gary <[email protected]> Co-authored-by: jmarchionatto <[email protected]> Co-authored-by: Emre Dincturk <[email protected]> Co-authored-by: tadgh <[email protected]> Co-authored-by: Nathan Doef <[email protected]> Co-authored-by: JasonRoberts-smile <[email protected]> Co-authored-by: volodymyr-korzh <[email protected]> Co-authored-by: leif stawnyczy <[email protected]> Co-authored-by: jdar <[email protected]> Co-authored-by: markiantorno <[email protected]> Co-authored-by: James Agnew <[email protected]> Co-authored-by: peartree <[email protected]>
1 parent 31f32d5 commit 2426c44

File tree

139 files changed

+694
-435
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

139 files changed

+694
-435
lines changed

hapi-fhir-base/src/main/java/ca/uhn/fhir/util/VersionEnum.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ public enum VersionEnum {
178178
V8_1_0,
179179
V8_2_0,
180180
V8_2_1,
181+
V8_2_2,
181182
V8_3_0,
182183
V8_4_0;
183184

hapi-fhir-checkstyle/pom.xml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@
7575
<plugin>
7676
<groupId>org.apache.maven.plugins</groupId>
7777
<artifactId>maven-source-plugin</artifactId>
78-
<version>3.2.1</version>
7978
<executions>
8079
<execution>
8180
<id>attach-sources</id>
@@ -85,6 +84,18 @@
8584
</execution>
8685
</executions>
8786
</plugin>
87+
<plugin>
88+
<groupId>org.apache.maven.plugins</groupId>
89+
<artifactId>maven-javadoc-plugin</artifactId>
90+
<executions>
91+
<execution>
92+
<id>attach-javadoc</id>
93+
<goals>
94+
<goal>jar</goal>
95+
</goals>
96+
</execution>
97+
</executions>
98+
</plugin>
8899
</plugins>
89100
</build>
90101
</profile>

hapi-fhir-cli/hapi-fhir-cli-app/pom.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,6 @@
3535

3636
<build>
3737
<plugins>
38-
<plugin>
39-
<groupId>org.sonatype.central</groupId>
40-
<artifactId>central-publishing-maven-plugin</artifactId>
41-
<configuration>
42-
<skipPublishing>true</skipPublishing>
43-
</configuration>
44-
</plugin>
4538
<plugin>
4639
<groupId>org.apache.maven.plugins</groupId>
4740
<artifactId>maven-shade-plugin</artifactId>

hapi-fhir-dist/pom.xml

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,6 @@
1818
<dependencies>
1919
</dependencies>
2020

21-
<build>
22-
<plugins>
23-
<plugin>
24-
<groupId>org.sonatype.central</groupId>
25-
<artifactId>central-publishing-maven-plugin</artifactId>
26-
<configuration>
27-
<skipPublishing>true</skipPublishing>
28-
</configuration>
29-
</plugin>
30-
</plugins>
31-
</build>
32-
3321
<profiles>
3422
<profile>
3523
<id>DIST</id>

hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/8_2_1/upgrade.md

Whitespace-only changes.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
release-date: "2025-07-14"
3+
codename: "Fortification"

hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/8_4_0/7040-maintain-contained-resource-reference-ids.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
type: fix
33
issue: 7040
4+
backport: 8.2.1
45
title: "Due to a fix in Release 8.2, contained resources
56
will no longer have their ids prepended with a '#'.
67
This caused a regression where contained resources were
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
type: fix
3+
issue: 7088
4+
backport: 8.2.1
5+
title: "When performing a JPA query using the `_tag`, `_profile`, and/or `_security` parameters,
6+
the search engine could include a redundant SQL JOIN in the emitted SQL statements. These extra
7+
JOINs caused a performance degradation in some cases."
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
type: fix
3+
issue: 7088
4+
backport: 8.2.1
5+
title: "A regression in HAPI FHIR 8.0.0 meant that the configured maximum export file sizes were not
6+
respected. This has been corrected."

hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/search/SearchCoordinatorSvcImpl.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import ca.uhn.fhir.jpa.search.cache.SearchCacheStatusEnum;
4949
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
5050
import ca.uhn.fhir.jpa.util.QueryParameterUtils;
51+
import ca.uhn.fhir.model.api.IQueryParameterType;
5152
import ca.uhn.fhir.model.api.Include;
5253
import ca.uhn.fhir.rest.api.CacheControlDirective;
5354
import ca.uhn.fhir.rest.api.Constants;
@@ -77,6 +78,7 @@
7778

7879
import java.time.Instant;
7980
import java.time.temporal.ChronoUnit;
81+
import java.util.HashSet;
8082
import java.util.List;
8183
import java.util.Optional;
8284
import java.util.Set;
@@ -471,10 +473,38 @@ private Integer getSynchronousMaxResultsToFetch(SearchParameterMap theParams, In
471473
}
472474

473475
private void validateSearch(SearchParameterMap theParams) {
476+
assert checkNoDuplicateParameters(theParams)
477+
: "Duplicate parameters found in query: " + theParams.toNormalizedQueryString(myContext);
478+
474479
validateIncludes(theParams.getIncludes(), Constants.PARAM_INCLUDE);
475480
validateIncludes(theParams.getRevIncludes(), Constants.PARAM_REVINCLUDE);
476481
}
477482

483+
/**
484+
* This method detects whether we have any duplicate lists of parameters and returns
485+
* {@literal true} if none are found. For example, the following query would result
486+
* in this method returning {@literal false}:
487+
* <code>Patient?name=bart,homer&name=bart,homer</code>
488+
* <p>
489+
* This is not an optimized test, and it's not technically even prohibited to have
490+
* duplicates like these in queries so this method should only be called as a
491+
* part of an {@literal assert} statement to catch errors in tests.
492+
*/
493+
private boolean checkNoDuplicateParameters(SearchParameterMap theParams) {
494+
HashSet<List<IQueryParameterType>> lists = new HashSet<>();
495+
for (List<List<IQueryParameterType>> andList : theParams.values()) {
496+
497+
lists.clear();
498+
for (int i = 0; i < andList.size(); i++) {
499+
List<IQueryParameterType> orListI = andList.get(i);
500+
if (!orListI.isEmpty() && !lists.add(orListI)) {
501+
return false;
502+
}
503+
}
504+
}
505+
return true;
506+
}
507+
478508
private void validateIncludes(Set<Include> includes, String name) {
479509
for (Include next : includes) {
480510
String value = next.getValue();

0 commit comments

Comments
 (0)