mirror of
https://github.com/hapifhir/hapi-fhir.git
synced 2025-02-13 16:35:21 +00:00
* Add unit tests and supporting classes from gitlab issue. * Commit with changes thus far to be reviewed. Namely, add savepoint capabilities to HapiTransactionService, inject HapiTransactionService into CascadingDeleteInterceptor, add savepoint capabilities to the TransactionDetails, and catch an Exception in BaseHapiFhirResourceDao.delete() then rollback to the checkpoint. * Fix compile error. * hapi transaction service test * hapi transaction service test * hapi transaction service test * First draft of RetryTemplate and flush() logic. Try unit testing with PointcutLatch. * hapi transaction service test * Latest changes including moving RetryTemplate, cleaning up unit tests. * First attempt at correct design. Fix compile errors. * Add failed rollback savepoint test. * fix propogation * interesting test failure in SafeDeleterTest * Latest code * move delete * test passing * all tests pass * yay we're done just cleanup * First round of cleanup: Get rid of all exploratory logging, remove unneeded dependencies, move creation of RetryTemplate to SafeDeleter. * More cleanup. Add changelog. * Bump to 6.2.0-PRE13-SNAPSHOT. * Code review feedback: Refactor SafeDeleter to a service and bean. Add comments. * Code review feedback: Comments on unit test assertions. * Code review feedback: Rename SafeDeleterSvc to ThreadSafeResourceDeleterSvc. Add javadoc. Add logger to DelayListener. Remove useless commented out code. * Fix unit test failure in CascadingDeleteInterceptorTest. Co-authored-by: Ken Stevens <ken@smilecdr.com>
568 lines
16 KiB
XML
568 lines
16 KiB
XML
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
|
|
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>6.2.0-PRE13-SNAPSHOT</version>
|
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
|
</parent>
|
|
|
|
<artifactId>hapi-fhir-jpaserver-base</artifactId>
|
|
<packaging>jar</packaging>
|
|
|
|
<name>HAPI FHIR JPA Server</name>
|
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
<groupId>com.fasterxml.woodstox</groupId>
|
|
<artifactId>woodstox-core</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-csv</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>co.elastic.apm</groupId>
|
|
<artifactId>apm-agent-api</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-base</artifactId>
|
|
<version>${project.version}</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<artifactId>commons-logging</artifactId>
|
|
<groupId>commons-logging</groupId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-client</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-server</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-server-mdm</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-jpaserver-subscription</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-jpaserver-searchparam</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-sql-migrate</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-jpaserver-model</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-validation</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-structures-dstu2</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-structures-dstu3</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-structures-r4</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<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-structures-hl7org-dstu2</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-validation-resources-dstu2</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-validation-resources-dstu3</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-validation-resources-r4</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-validation-resources-r5</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-batch</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-storage-batch2</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-storage-batch2-jobs</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-dbcp2</artifactId>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>commons-logging</groupId>
|
|
<artifactId>commons-logging</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-classic</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.awaitility</groupId>
|
|
<artifactId>awaitility</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.javassist</groupId>
|
|
<artifactId>javassist</artifactId>
|
|
</dependency>
|
|
|
|
<!-- GraphQL -->
|
|
<dependency>
|
|
<groupId>com.graphql-java</groupId>
|
|
<artifactId>graphql-java</artifactId>
|
|
</dependency>
|
|
|
|
<!-- SQL Builder -->
|
|
<dependency>
|
|
<groupId>com.healthmarketscience.sqlbuilder</groupId>
|
|
<artifactId>sqlbuilder</artifactId>
|
|
</dependency>
|
|
|
|
|
|
<!-- Jackson -->
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-annotations</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-databind</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springdoc</groupId>
|
|
<artifactId>springdoc-openapi-ui</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.thymeleaf</groupId>
|
|
<artifactId>thymeleaf</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.thymeleaf</groupId>
|
|
<artifactId>thymeleaf-spring5</artifactId>
|
|
</dependency>
|
|
|
|
<!-- For UCUM: TODO we should replace this with org.fhir UCUM -->
|
|
<dependency>
|
|
<groupId>org.jscience</groupId>
|
|
<artifactId>jscience</artifactId>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>org.javolution</groupId>
|
|
<artifactId>javolution</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
|
|
|
|
<!-- Patch Dependencies -->
|
|
<dependency>
|
|
<groupId>io.dogote</groupId>
|
|
<artifactId>json-patch</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.github.dnault</groupId>
|
|
<artifactId>xml-patch</artifactId>
|
|
</dependency>
|
|
|
|
<!-- FHIR RI is pulled in for UCUM support, but we don't want any of its dependencies. -->
|
|
|
|
<!--
|
|
For some reason JavaDoc crashed during site generation unless we have this dependency
|
|
-->
|
|
<dependency>
|
|
<groupId>javax.interceptor</groupId>
|
|
<artifactId>javax.interceptor-api</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!--
|
|
Dependencies that need to be added since JDK9
|
|
-->
|
|
<dependency>
|
|
<groupId>javax.annotation</groupId>
|
|
<artifactId>javax.annotation-api</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>javax.servlet</groupId>
|
|
<artifactId>javax.servlet-api</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!-- Spring -->
|
|
<dependency>
|
|
<groupId>org.springframework</groupId>
|
|
<artifactId>spring-core</artifactId>
|
|
<exclusions>
|
|
<exclusion>
|
|
<artifactId>commons-logging</artifactId>
|
|
<groupId>commons-logging</groupId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.data</groupId>
|
|
<artifactId>spring-data-jpa</artifactId>
|
|
<exclusions>
|
|
<exclusion>
|
|
<artifactId>spring-aop</artifactId>
|
|
<groupId>org.springframework</groupId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.data</groupId>
|
|
<artifactId>spring-data-commons</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework</groupId>
|
|
<artifactId>spring-messaging</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework</groupId>
|
|
<artifactId>spring-tx</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework</groupId>
|
|
<artifactId>spring-context-support</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework</groupId>
|
|
<artifactId>spring-webmvc</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework</groupId>
|
|
<artifactId>spring-websocket</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>javax.el</groupId>
|
|
<artifactId>javax.el-api</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.glassfish</groupId>
|
|
<artifactId>javax.el</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Note that we need this dependency to send log4j logging requests to slf4j -->
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-to-slf4j</artifactId>
|
|
</dependency>
|
|
<!-- Hibernate Search -->
|
|
<dependency>
|
|
<groupId>org.elasticsearch.client</groupId>
|
|
<artifactId>elasticsearch-rest-high-level-client</artifactId>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-api</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.hibernate.search</groupId>
|
|
<artifactId>hibernate-search-backend-elasticsearch</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.hibernate.search</groupId>
|
|
<artifactId>hibernate-search-backend-lucene</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.hibernate.search</groupId>
|
|
<artifactId>hibernate-search-backend-elasticsearch-aws</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-analyzers-phonetic</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-backward-codecs</artifactId>
|
|
</dependency>
|
|
<!-- Misc -->
|
|
<dependency>
|
|
<groupId>com.google.guava</groupId>
|
|
<artifactId>guava</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-server-openapi</artifactId>
|
|
<version>${project.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.github.ben-manes.caffeine</groupId>
|
|
<artifactId>caffeine</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.jetbrains</groupId>
|
|
<artifactId>annotations</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.jena</groupId>
|
|
<artifactId>jena-arq</artifactId>
|
|
<scope>compile</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.jena</groupId>
|
|
<artifactId>jena-core</artifactId>
|
|
<scope>compile</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.jayway.jsonpath</groupId>
|
|
<artifactId>json-path-assert</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.jayway.jsonpath</groupId>
|
|
<artifactId>json-path</artifactId>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
|
|
<properties>
|
|
<jackson.version>2.7.1</jackson.version>
|
|
</properties>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>de.jpdigital</groupId>
|
|
<artifactId>hibernate54-ddl-maven-plugin</artifactId>
|
|
<configuration>
|
|
<dialects>
|
|
<param>h2</param>
|
|
<param>derby_10_7</param>
|
|
<param>mysql57</param>
|
|
<param>mariadb</param>
|
|
<param>oracle12c</param>
|
|
<param>sqlserver2012</param>
|
|
</dialects>
|
|
<customDialects>
|
|
<customDialect>ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect</customDialect>
|
|
<customDialect>org.hibernate.dialect.CockroachDB201Dialect</customDialect>
|
|
</customDialects>
|
|
<outputDirectory>${project.build.directory}/classes/ca/uhn/hapi/fhir/jpa/docs/database</outputDirectory>
|
|
<packages>
|
|
<param>ca.uhn.fhir.jpa.entity</param>
|
|
<param>ca.uhn.fhir.jpa.model.entity</param>
|
|
</packages>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>process-classes</phase>
|
|
<goals>
|
|
<goal>gen-ddl</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<dependencies>
|
|
<!--
|
|
These have been added as explicit dependencies
|
|
as JDK9 no longer includes them by default
|
|
-->
|
|
<dependency>
|
|
<groupId>org.glassfish.jaxb</groupId>
|
|
<artifactId>jaxb-runtime</artifactId>
|
|
<version>${jaxb_runtime_version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-jpaserver-model</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-tinder-plugin</artifactId>
|
|
<version>${project.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>build_dstu2</id>
|
|
<goals>
|
|
<goal>generate-jparest-server</goal>
|
|
</goals>
|
|
<configuration>
|
|
<version>dstu2</version>
|
|
<configPackageBase>ca.uhn.fhir.jpa.config</configPackageBase>
|
|
<packageBase>ca.uhn.fhir.jpa.rp.dstu2</packageBase>
|
|
<targetResourceSpringBeansFile>hapi-fhir-server-resourceproviders-dstu2.xml
|
|
</targetResourceSpringBeansFile>
|
|
<baseResourceNames/>
|
|
<excludeResourceNames>
|
|
<!-- <excludeResourceName>OperationDefinition</excludeResourceName> <excludeResourceName>OperationOutcome</excludeResourceName> -->
|
|
</excludeResourceNames>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>build_dstu3</id>
|
|
<goals>
|
|
<goal>generate-jparest-server</goal>
|
|
</goals>
|
|
<configuration>
|
|
<version>dstu3</version>
|
|
<configPackageBase>ca.uhn.fhir.jpa.config</configPackageBase>
|
|
<packageBase>ca.uhn.fhir.jpa.rp.dstu3</packageBase>
|
|
<targetResourceSpringBeansFile>hapi-fhir-server-resourceproviders-dstu3.xml
|
|
</targetResourceSpringBeansFile>
|
|
<baseResourceNames></baseResourceNames>
|
|
<excludeResourceNames>
|
|
</excludeResourceNames>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>build_r4</id>
|
|
<goals>
|
|
<goal>generate-jparest-server</goal>
|
|
</goals>
|
|
<configuration>
|
|
<version>r4</version>
|
|
<configPackageBase>ca.uhn.fhir.jpa.config</configPackageBase>
|
|
<packageBase>ca.uhn.fhir.jpa.rp.r4</packageBase>
|
|
<targetResourceSpringBeansFile>hapi-fhir-server-resourceproviders-r4.xml
|
|
</targetResourceSpringBeansFile>
|
|
<baseResourceNames></baseResourceNames>
|
|
<excludeResourceNames>
|
|
</excludeResourceNames>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>build_r5</id>
|
|
<goals>
|
|
<goal>generate-jparest-server</goal>
|
|
</goals>
|
|
<configuration>
|
|
<version>r5</version>
|
|
<configPackageBase>ca.uhn.fhir.jpa.config</configPackageBase>
|
|
<packageBase>ca.uhn.fhir.jpa.rp.r5</packageBase>
|
|
<targetResourceSpringBeansFile>hapi-fhir-server-resourceproviders-r5.xml
|
|
</targetResourceSpringBeansFile>
|
|
<baseResourceNames></baseResourceNames>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-structures-dstu2</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-structures-dstu3</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-structures-r4</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-validation-resources-dstu3</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>add-source</id>
|
|
<phase>generate-sources</phase>
|
|
<goals>
|
|
<goal>add-source</goal>
|
|
</goals>
|
|
<configuration>
|
|
<sources>
|
|
<source>target/generated-sources/tinder</source>
|
|
</sources>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
<resources>
|
|
<resource>
|
|
<directory>${project.basedir}/src/main/resources</directory>
|
|
</resource>
|
|
<resource>
|
|
<directory>${project.basedir}/target/generated-resources/tinder</directory>
|
|
</resource>
|
|
</resources>
|
|
</build>
|
|
|
|
</project>
|