mirror of
https://github.com/hapifhir/hapi-fhir.git
synced 2025-02-28 17:19:24 +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>
225 lines
7.1 KiB
XML
225 lines
7.1 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>
|
|
|
|
<!-- Note: HAPI projects use the "hapi-fhir" POM as their base to provide easy management. You do not need to use this in your own projects, so the "parent" tag and it's contents below may be removed
|
|
if you are using this file as a basis for your own project. -->
|
|
<parent>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-deployable-pom</artifactId>
|
|
<version>6.2.0-PRE13-SNAPSHOT</version>
|
|
<relativePath>../../hapi-deployable-pom</relativePath>
|
|
</parent>
|
|
|
|
<artifactId>hapi-fhir-cli-jpaserver</artifactId>
|
|
<packaging>war</packaging>
|
|
|
|
<name>HAPI FHIR - Command Line Client - Server WAR</name>
|
|
|
|
<dependencies>
|
|
|
|
<!-- This dependency includes the core HAPI-FHIR classes -->
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-base</artifactId>
|
|
<version>${project.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!-- This dependency includes the JPA server itself, which is packaged separately from the rest of HAPI FHIR -->
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-jpaserver-base</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
|
|
<!-- This dependency is used for the "FHIR Tester" web app overlay -->
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-testpage-overlay</artifactId>
|
|
<version>${project.version}</version>
|
|
<type>war</type>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-testpage-overlay</artifactId>
|
|
<version>${project.version}</version>
|
|
<classifier>classes</classifier>
|
|
</dependency>
|
|
|
|
<!-- HAPI-FHIR uses Logback for logging support. The logback library is included automatically by Maven as a part of the hapi-fhir-base dependency, but you also need to include a logging library. Logback
|
|
is used here, but log4j would also be fine. -->
|
|
<dependency>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-classic</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!-- Needed for JEE/Servlet support -->
|
|
<dependency>
|
|
<groupId>javax.servlet</groupId>
|
|
<artifactId>javax.servlet-api</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!-- If you are using HAPI narrative generation, you will need to include Thymeleaf as well. Otherwise the following can be omitted. -->
|
|
<dependency>
|
|
<groupId>org.thymeleaf</groupId>
|
|
<artifactId>thymeleaf</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!-- Used for CORS support -->
|
|
|
|
<!-- Spring Web is used to deploy the server to a web container. -->
|
|
<dependency>
|
|
<groupId>org.springframework</groupId>
|
|
<artifactId>spring-web</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!-- You may not need this if you are deploying to an application server which provides database connection pools itself. -->
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-dbcp2</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>commons-cli</groupId>
|
|
<artifactId>commons-cli</artifactId>
|
|
</dependency>
|
|
|
|
<!-- This example uses H2 embedded database. If you are using another database such as Mysql or Oracle, you may omit the following dependencies and replace them with an appropriate database client
|
|
dependency for your database platform. -->
|
|
<dependency>
|
|
<groupId>com.h2database</groupId>
|
|
<artifactId>h2</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Hibernate search Lucene backend -->
|
|
<dependency>
|
|
<groupId>org.hibernate.search</groupId>
|
|
<artifactId>hibernate-search-backend-lucene</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>
|
|
|
|
|
|
<!-- The following dependencies are only needed for automated unit tests, you do not neccesarily need them to run the example. -->
|
|
<dependency>
|
|
<groupId>org.eclipse.jetty</groupId>
|
|
<artifactId>jetty-servlets</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.eclipse.jetty</groupId>
|
|
<artifactId>jetty-servlet</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.eclipse.jetty</groupId>
|
|
<artifactId>jetty-server</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.eclipse.jetty</groupId>
|
|
<artifactId>jetty-util</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.eclipse.jetty</groupId>
|
|
<artifactId>jetty-webapp</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.helger</groupId>
|
|
<artifactId>ph-schematron</artifactId>
|
|
<exclusions>
|
|
<exclusion>
|
|
<artifactId>Saxon-HE</artifactId>
|
|
<groupId>net.sf.saxon</groupId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<groupId>org.glassfish.jaxb</groupId>
|
|
<artifactId>jaxb-core</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
|
|
<!-- Tells Maven to name the generated WAR file as hapi-fhir-jpaserver-example.war -->
|
|
<finalName>hapi-fhir-cli-jpaserver</finalName>
|
|
|
|
<!-- The following is not required for the application to build, but allows you to test it by issuing "mvn jetty:run" from the command line. -->
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.eclipse.jetty</groupId>
|
|
<artifactId>jetty-maven-plugin</artifactId>
|
|
<configuration>
|
|
<webApp>
|
|
<contextPath>/hapi-fhir-jpaserver-example</contextPath>
|
|
<allowDuplicateFragmentNames>true</allowDuplicateFragmentNames>
|
|
</webApp>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
|
|
<plugins>
|
|
|
|
<!-- The configuration here tells the WAR plugin to include the FHIR Tester overlay. You can omit it if you are not using that feature. -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-war-plugin</artifactId>
|
|
<configuration>
|
|
<archive>
|
|
<manifestEntries>
|
|
<Build-Time>${maven.build.timestamp}</Build-Time>
|
|
</manifestEntries>
|
|
</archive>
|
|
<overlays>
|
|
<overlay>
|
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
|
<artifactId>hapi-fhir-testpage-overlay</artifactId>
|
|
</overlay>
|
|
</overlays>
|
|
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
|
|
<attachClasses>true</attachClasses>
|
|
<packagingExcludes>
|
|
WEB-INF/lib/Saxon-HE-*,
|
|
WEB-INF/lib/hapi-*
|
|
</packagingExcludes>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<!-- This is to run the integration tests -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-failsafe-plugin</artifactId>
|
|
<configuration>
|
|
<redirectTestOutputToFile>true</redirectTestOutputToFile>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>integration-test</goal>
|
|
<goal>verify</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
</plugins>
|
|
</build>
|
|
|
|
</project>
|