James Agnew 5c4aae0b26
Partitioned ID Mode (#6391)
* Begin work on PK schema selector

* Work on generator

* Filter working

* Add tests

* Work on tests

* Work on contributor

* Work

* Tests passing

* Drop unneeded annotation

* Partition cleanup

* About to merge JpaPid

* Work on IDs

* Tests passing

* Working on query count tests

* Ongoing work

* Ongoing work

* Working on tests - Running but about to try removing
ResourceHistoryProvenanceEntity link

* More tests passing

* Fix some more tests

* Test fixes

* About to add partition ID to selector

* Most query count tests passing

* Work on tests

* Working on includes

* All conditional tests passing again

* About to modify joins in SQL builder

* Search generator refactored, and tests passing

* Tag tests done

* Work on tests

* Everything operation fixed

* Clean up PIDs for batch job

* Clean up search paging

* Work on expunge service

* Work on tests

* Test fixes

* Work on same transaction updates

* Work on JPA R4 tests

* Work on tests

* Fixes

* Work

* Test fix

* Work on tests

* Cleanup

* Test fixes

* Test fix

* Spotless

* License headers

* Test fix

* License headers

* Compile fix

* Test fix

* Test fix

* Test fixes

* Test fixes

* Cleanup

* Test fixes

* Test fixes

* Starting to address fixmes

* Spotless

* More test cleanup

* Test cleanup

* Test fixes

* Test fixes

* Spotless

* Test cleanup

* Test fix

* Deal with test failures

* Spotless

* Test fixes

* About to modify RESOURCE_LOOKUP cache

* Test cleanup

* Intermittent test fix

* Try to resolve intermittent

* More test work

* Test fixing

* Add tests

* Spotless

* Add troubleshooting logs

* Add test logging

* More test logging

* Test fix

* Test fixes

* Test fix

* Test fixes

* Test cleanup

* Test cleanup

* Test fix

* Test fix

* Fixes

* Add tests

* Test cleanup

* Remove stale test

* Test fix

* Imports cleaniup

* Work on migrations

* Work on migrations

* Work on PKs

* Work on tests

* Cleanup

* Test fix

* Test fix

* Spotless

* Test fixes

* Test fix

* Test fixes

* Test fix

* t fix

* Test fixes

* Test fix

* Test fixes

* Add test method

* Test cleanup

* Test fixes

* Cleanup

* Test fixes

* Cleanup

* Test cleanup

* Test fix

* Add migrator support

* More test work

* Spotless

* Add header

* License header

* Test fix

* MDM test fixes

* Test fix

* Add tests

* Cleanup

* Compile fix

* Spotless

* Work on docs

* Cleanup

* Add partitioned test

* Work on tests

* Rename JpaPidValueTuples

* Test cleanup

* Test fixes

* Cleanup

* Cleanup

* Spotless

* Spotless

* Test fixes

* Test fixes

* Build fix

* test fix

* Test fixes

* Build fix

* Cleanup

* Merge master

* Cleanup

* Work on tests

* Test fixes

* i

* Cleanup

* Cleanup

* Cleanup

* Work on docs

* Work on cleanup

* Compile fix

* Test fix

* Spotless

* Compile fix

* Refactor for CDR work

* Disable test

* Add constants

* Vdersion bump

* Rename class and add error codes

* Compile fix

* DDL plugin tweak

* Test fix

* Add javadocs

* Cleanup

* Address review comments

* Plugin version bump

* Address review comments

* Test fixes

* Test cleanup

* Partitionable indexes

* Address fixmes

* Test fix

* Bump to force CI job

* Docs fix

* Fix typo

* Test fixes

* Docs fix

* Test cleanup

* Remove unused field

* Work on migration

* License headeer updates
2025-01-02 15:57:56 -05:00

412 lines
13 KiB
XML

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-deployable-pom</artifactId>
<version>7.7.17-SNAPSHOT</version>
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
</parent>
<artifactId>hapi-fhir-validation</artifactId>
<packaging>bundle</packaging>
<name>HAPI FHIR - Validation</name>
<dependencies>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-base</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-converter</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-caching-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.validation</artifactId>
<version>${fhir_core_version}</version>
<exclusions>
<exclusion>
<groupId>info.cqframework</groupId>
<artifactId>elm</artifactId>
</exclusion>
<exclusion>
<groupId>info.cqframework</groupId>
<artifactId>cql-to-elm</artifactId>
</exclusion>
<exclusion>
<groupId>info.cqframework</groupId>
<artifactId>quick</artifactId>
</exclusion>
<exclusion>
<groupId>info.cqframework</groupId>
<artifactId>qdm</artifactId>
</exclusion>
<exclusion>
<groupId>info.cqframework</groupId>
<artifactId>cql</artifactId>
</exclusion>
<exclusion>
<groupId>info.cqframework</groupId>
<artifactId>model</artifactId>
</exclusion>
<exclusion>
<groupId>io.javalin</groupId>
<artifactId>javalin</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.utilities</artifactId>
<version>${fhir_core_version}</version>
</dependency>
<dependency>
<groupId>org.fhir</groupId>
<artifactId>ucum</artifactId>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
</dependency>
<!--
Note: As of HAPI FHIR 5.0.0 we now use Jackson for JSON parsing, but the
validator still uses GSON so it is a dependency here
-->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<!--
Optional dependencies from RI codebase
-->
<!--
<dependency>
<groupId>es.nitaur.markdown</groupId>
<artifactId>txtmark</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>ST4</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>xpp3</groupId>
<artifactId>xpp3</artifactId>
<optional>true</optional>
</dependency>
-->
<!--
Optional dependencies on the various versions of FHIR
-->
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-structures-dstu2</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-validation-resources-dstu2</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-structures-hl7org-dstu2</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-structures-dstu2.1</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-validation-resources-dstu2.1</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-structures-dstu3</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-validation-resources-dstu3</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-structures-r4</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-validation-resources-r4</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-structures-r4b</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-validation-resources-r4b</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<!-- The validator and snapshot generators require R5 structures independent of which
version is being validated -->
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-structures-r5</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-validation-resources-r5</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>
<!-- Test Deps -->
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.woodstox</groupId>
<artifactId>woodstox-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-server</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-client</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-test-utilities</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry.javaagent</groupId>
<artifactId>opentelemetry-testing-common</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry.javaagent</groupId>
<artifactId>opentelemetry-agent-for-testing</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>commons-lang</artifactId>
<groupId>commons-lang</groupId>
<version>2.5</version>
<scope>test</scope>
</dependency>
<!-- Dependencies for Schematron -->
<dependency>
<groupId>com.helger.schematron</groupId>
<artifactId>ph-schematron-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.helger.schematron</groupId>
<artifactId>ph-schematron-xslt</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-arq</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-jpaserver-model</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-caching-caffeine</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hl7.fhir.testcases</groupId>
<artifactId>fhir-test-cases</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<show>public</show>
</configuration>
</plugin>
</plugins>
</reporting>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>@{argLine} -XX:+HeapDumpOnOutOfMemoryError</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<configuration>
<!-- Don't add UHN licenses to RI structures -->
<skipUpdateLicense>true</skipUpdateLicense>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<_nouses>true</_nouses>
<_removeheaders>Built-By, Include-Resource, Private-Package, Require-Capability</_removeheaders>
<!-- No need to disable normal OSGi class loading
<Fragment-Host>
ca.uhn.hapi.fhir.hapi-fhir-base
</Fragment-Host>
-->
<!-- add imports for validation resource packages -->
<Import-Package>
org.hl7.fhir.instance.model.profile;version="${project.version}";resolution:=optional,
org.hl7.fhir.instance.model.schema;version="${project.version}";resolution:=optional,
org.hl7.fhir.instance.model.valueset;version="${project.version}";resolution:=optional,
org.hl7.fhir.dstu2016may.model.profile;version="${project.version}";resolution:=optional,
org.hl7.fhir.dstu2016may.model.schema;version="${project.version}";resolution:=optional,
org.hl7.fhir.dstu2016may.model.valueset;version="${project.version}";resolution:=optional,
org.hl7.fhir.dstu3.model.extension;version="${project.version}";resolution:=optional,
org.hl7.fhir.dstu3.model.profile;version="${project.version}";resolution:=optional,
org.hl7.fhir.dstu3.model.schema;version="${project.version}";resolution:=optional,
org.hl7.fhir.dstu3.model.valueset;version="${project.version}";resolution:=optional,
org.hl7.fhir.r4.model.extension;version="${project.version}";resolution:=optional,
org.hl7.fhir.r4.model.profile;version="${project.version}";resolution:=optional,
org.hl7.fhir.r4.model.schema;version="${project.version}";resolution:=optional,
org.hl7.fhir.r4.model.valueset;version="${project.version}";resolution:=optional,
org.hl7.fhir.r5.model.extension;version="${project.version}";resolution:=optional,
org.hl7.fhir.r5.model.profile;version="${project.version}";resolution:=optional,
org.hl7.fhir.r5.model.valueset;version="${project.version}";resolution:=optional,
*
</Import-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>CI</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>