Merge remote-tracking branch 'remotes/origin/master' into ks-subscription-delivery-queue-configurable-name
This commit is contained in:
commit
a3a7174c63
|
@ -3,10 +3,10 @@ HAPI FHIR
|
||||||
|
|
||||||
HAPI FHIR - Java API for HL7 FHIR Clients and Servers
|
HAPI FHIR - Java API for HL7 FHIR Clients and Servers
|
||||||
|
|
||||||
[![Coverage Status](https://coveralls.io/repos/jamesagnew/hapi-fhir/badge.svg?branch=master&service=github)](https://coveralls.io/github/jamesagnew/hapi-fhir?branch=master)
|
[![Build Status](https://dev.azure.com/jamesagnew214/jamesagnew214/_apis/build/status/jamesagnew.hapi-fhir?branchName=master)](https://dev.azure.com/jamesagnew214/jamesagnew214/_build/latest?definitionId=1&branchName=master)
|
||||||
|
[![codecov](https://codecov.io/gh/jamesagnew/hapi-fhir/branch/master/graph/badge.svg)](https://codecov.io/gh/jamesagnew/hapi-fhir)
|
||||||
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/ca.uhn.hapi.fhir/hapi-fhir-base/badge.svg)](http://search.maven.org/#search|ga|1|ca.uhn.hapi.fhir)
|
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/ca.uhn.hapi.fhir/hapi-fhir-base/badge.svg)](http://search.maven.org/#search|ga|1|ca.uhn.hapi.fhir)
|
||||||
[![License](https://img.shields.io/badge/license-apache%202.0-60C060.svg)](http://jamesagnew.github.io/hapi-fhir/license.html)
|
[![License](https://img.shields.io/badge/license-apache%202.0-60C060.svg)](http://jamesagnew.github.io/hapi-fhir/license.html)
|
||||||
[![Build Status](https://dev.azure.com/jamesagnew214/jamesagnew214/_apis/build/status/jamesagnew.hapi-fhir?branchName=master)](https://dev.azure.com/jamesagnew214/jamesagnew214/_build/latest?definitionId=1&branchName=master)
|
|
||||||
|
|
||||||
Complete project documentation is available here:
|
Complete project documentation is available here:
|
||||||
http://hapifhir.io
|
http://hapifhir.io
|
||||||
|
|
|
@ -28,7 +28,7 @@ jobs:
|
||||||
inputs:
|
inputs:
|
||||||
#mavenPomFile: 'pom.xml'
|
#mavenPomFile: 'pom.xml'
|
||||||
goals: 'clean install' # Optional
|
goals: 'clean install' # Optional
|
||||||
options: ''
|
options: '-P ALLMODULES,JACOCO'
|
||||||
#publishJUnitResults: true
|
#publishJUnitResults: true
|
||||||
#testResultsFiles: '**/surefire-reports/TEST-*.xml' # Required when publishJUnitResults == True
|
#testResultsFiles: '**/surefire-reports/TEST-*.xml' # Required when publishJUnitResults == True
|
||||||
#testRunTitle: # Optional
|
#testRunTitle: # Optional
|
||||||
|
@ -44,7 +44,7 @@ jobs:
|
||||||
#mavenVersionOption: 'Default' # Options: default, path
|
#mavenVersionOption: 'Default' # Options: default, path
|
||||||
#mavenDirectory: # Required when mavenVersionOption == Path
|
#mavenDirectory: # Required when mavenVersionOption == Path
|
||||||
#mavenSetM2Home: false # Required when mavenVersionOption == Path
|
#mavenSetM2Home: false # Required when mavenVersionOption == Path
|
||||||
mavenOptions: '-Xmx2048m $(MAVEN_OPTS)' # Optional
|
mavenOptions: '-Xmx2048m $(MAVEN_OPTS) -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss,SSS' # Optional
|
||||||
#mavenAuthenticateFeed: false
|
#mavenAuthenticateFeed: false
|
||||||
#effectivePomSkip: false
|
#effectivePomSkip: false
|
||||||
#sonarQubeRunAnalysis: false
|
#sonarQubeRunAnalysis: false
|
||||||
|
@ -53,4 +53,7 @@ jobs:
|
||||||
#pmdRunAnalysis: false # Optional
|
#pmdRunAnalysis: false # Optional
|
||||||
#findBugsRunAnalysis: false # Optional
|
#findBugsRunAnalysis: false # Optional
|
||||||
|
|
||||||
|
- script: bash <(curl https://codecov.io/bash) -t $(CODECOV_TOKEN)
|
||||||
|
displayName: 'codecov'
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -129,12 +129,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<classFolders>
|
|
||||||
<classFolder>${basedir}/target/classes</classFolder>
|
|
||||||
</classFolders>
|
|
||||||
<sourceFolders>
|
|
||||||
<sourceFolder>${basedir}/src/main/java</sourceFolder>
|
|
||||||
</sourceFolders>
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
@ -144,17 +138,6 @@
|
||||||
<goal>prepare-agent</goal>
|
<goal>prepare-agent</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
|
||||||
<id>post-integration-test</id>
|
|
||||||
<phase>install</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>report</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
|
|
||||||
<outputDirectory>${project.reporting.outputDirectory}/jacoco-report</outputDirectory>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
@ -164,20 +147,6 @@
|
||||||
<argLine>@{argLine} -Dfile.encoding=UTF-8 -Xmx712m</argLine>
|
<argLine>@{argLine} -Dfile.encoding=UTF-8 -Xmx712m</argLine>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<!--
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-source-plugin</artifactId>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>attach-sources</id>
|
|
||||||
<goals>
|
|
||||||
<goal>jar</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
-->
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.felix</groupId>
|
<groupId>org.apache.felix</groupId>
|
||||||
<artifactId>maven-bundle-plugin</artifactId>
|
<artifactId>maven-bundle-plugin</artifactId>
|
||||||
|
|
|
@ -104,14 +104,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<classFolders>
|
|
||||||
<classFolder>${basedir}/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-base/target/classes</classFolder>
|
|
||||||
</classFolders>
|
|
||||||
<sourceFolders>
|
|
||||||
<sourceFolder>${basedir}/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-base/src/main/java</sourceFolder>
|
|
||||||
</sourceFolders>
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
|
@ -43,14 +43,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<classFolders>
|
|
||||||
<classFolder>${basedir}/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-base/target/classes</classFolder>
|
|
||||||
</classFolders>
|
|
||||||
<sourceFolders>
|
|
||||||
<sourceFolder>${basedir}/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-base/src/main/java</sourceFolder>
|
|
||||||
</sourceFolders>
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
|
@ -51,6 +51,11 @@
|
||||||
<artifactId>hapi-fhir-structures-r4</artifactId>
|
<artifactId>hapi-fhir-structures-r4</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
|
<artifactId>hapi-fhir-structures-r5</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-fhir-structures-hl7org-dstu2</artifactId>
|
<artifactId>hapi-fhir-structures-hl7org-dstu2</artifactId>
|
||||||
|
@ -91,393 +96,29 @@
|
||||||
<artifactId>hapi-fhir-jpaserver-model</artifactId>
|
<artifactId>hapi-fhir-jpaserver-model</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.mail</groupId>
|
|
||||||
<artifactId>javax.mail-api</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.sun.mail</groupId>
|
|
||||||
<artifactId>javax.mail</artifactId>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>javax.activation</groupId>
|
|
||||||
<artifactId>activation</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.helger</groupId>
|
|
||||||
<artifactId>ph-schematron</artifactId>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>Saxon-HE</artifactId>
|
|
||||||
<groupId>net.sf.saxon</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.helger</groupId>
|
|
||||||
<artifactId>ph-commons</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.thymeleaf</groupId>
|
|
||||||
<artifactId>thymeleaf</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Use an older version of SLF4j just to make sure we compile correctly against old SLF4j - Some people can't upgrade and we have no real need for recent features. -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>ch.qos.logback</groupId>
|
|
||||||
<artifactId>logback-classic</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Test Database -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.derby</groupId>
|
|
||||||
<artifactId>derby</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.commons</groupId>
|
|
||||||
<artifactId>commons-dbcp2</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<!--
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.derby</groupId>
|
|
||||||
<artifactId>derbyshared</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.derby</groupId>
|
|
||||||
<artifactId>derbytools</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.servlet</groupId>
|
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.eclipse.jetty</groupId>
|
|
||||||
<artifactId>jetty-servlets</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.eclipse.jetty</groupId>
|
|
||||||
<artifactId>jetty-servlet</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.eclipse.jetty</groupId>
|
|
||||||
<artifactId>jetty-server</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.eclipse.jetty</groupId>
|
|
||||||
<artifactId>jetty-util</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>net.sf.json-lib</groupId>
|
|
||||||
<artifactId>json-lib</artifactId>
|
|
||||||
<classifier>jdk15</classifier>
|
|
||||||
<scope>test</scope>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>commons-logging</artifactId>
|
|
||||||
<groupId>commons-logging</groupId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>commons-lang</artifactId>
|
|
||||||
<groupId>commons-lang</groupId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>ezmorph</artifactId>
|
|
||||||
<groupId>net.sf.ezmorph</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>net.sf.json-lib</groupId>
|
|
||||||
<artifactId>json-lib</artifactId>
|
|
||||||
<classifier>jdk15-sources</classifier>
|
|
||||||
<scope>test</scope>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>commons-logging</artifactId>
|
|
||||||
<groupId>commons-logging</groupId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>commons-lang</artifactId>
|
|
||||||
<groupId>commons-lang</groupId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>ezmorph</artifactId>
|
|
||||||
<groupId>net.sf.ezmorph</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>directory-naming</groupId>
|
|
||||||
<artifactId>naming-java</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>commons-logging</artifactId>
|
|
||||||
<groupId>commons-logging</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.google.guava</groupId>
|
|
||||||
<artifactId>guava</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.xmlunit</groupId>
|
|
||||||
<artifactId>xmlunit-core</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-test</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.eclipse.jetty.websocket</groupId>
|
|
||||||
<artifactId>websocket-api</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.eclipse.jetty.websocket</groupId>
|
|
||||||
<artifactId>websocket-client</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.eclipse.jetty.websocket</groupId>
|
|
||||||
<artifactId>websocket-server</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-web</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
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>
|
</dependencies>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<pluginManagement>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-site-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<skipDeploy>true</skipDeploy>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</pluginManagement>
|
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
|
||||||
<groupId>org.basepom.maven</groupId>
|
|
||||||
<artifactId>duplicate-finder-maven-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<skip>true</skip>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
|
||||||
<id>jacoco-merge</id>
|
|
||||||
<goals>
|
|
||||||
<goal>merge</goal>
|
|
||||||
</goals>
|
|
||||||
<phase>install</phase>
|
|
||||||
<configuration>
|
|
||||||
<fileSets>
|
|
||||||
<fileSet implementation="org.apache.maven.shared.model.fileset.FileSet">
|
|
||||||
<directory>${basedir}/..</directory>
|
|
||||||
<includes>
|
|
||||||
<!--
|
|
||||||
<include>hapi-fhir-base/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-client/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-server/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-structures-dstu/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-structures-dstu2/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-structures-hl7org-dstu2/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-structures-dstu3/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-structures-r4/target/jacoco.exec</include>
|
|
||||||
-->
|
|
||||||
<include>hapi-fhir-jpaserver-model/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-jpaserver-searchparam/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-jpaserver-subscription/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-jpaserver-base/target/jacoco.exec</include>
|
|
||||||
<!--
|
|
||||||
<include>hapi-fhir-client-okhttp/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-android/target/jacoco.exec</include>
|
|
||||||
<include>hapi-fhir-validation/target/jacoco.exec</include>
|
|
||||||
-->
|
|
||||||
</includes>
|
|
||||||
</fileSet>
|
|
||||||
</fileSets>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
<execution>
|
<execution>
|
||||||
<id>post-integration-test</id>
|
<id>post-integration-test</id>
|
||||||
<phase>install</phase>
|
<phase>verify</phase>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>report</goal>
|
<goal>report-aggregate</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
|
|
||||||
<outputDirectory>${project.reporting.outputDirectory}/jacoco-report</outputDirectory>
|
<outputDirectory>${project.reporting.outputDirectory}/jacoco-report</outputDirectory>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
<!--
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.eluder.coveralls</groupId>
|
|
||||||
<artifactId>coveralls-maven-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<sourceEncoding>UTF-8</sourceEncoding>
|
|
||||||
<serviceName>travis-ci</serviceName>
|
|
||||||
<serviceJobId>${env.TRAVIS_JOB_ID}</serviceJobId>
|
|
||||||
<sourceDirectories>
|
|
||||||
<sourceDirectory>../hapi-fhir-base/src/main/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-client/src/main/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-server/src/main/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-structures-dstu/src/test/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-structures-dstu2/src/test/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-structures-hl7org-dstu2/src/test/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-structures-dstu3/src/test/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-structures-r4/src/test/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-jpaserver-model/src/main/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-jpaserver-searchparam/src/main/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-jpaserver-subscription/src/main/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-jpaserver-base/src/main/java</sourceDirectory>
|
|
||||||
<sourceDirectory>../hapi-fhir-client-okhttp/src/main/java</sourceDirectory>
|
|
||||||
</sourceDirectories>
|
|
||||||
</configuration>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.xml.bind</groupId>
|
|
||||||
<artifactId>jaxb-api</artifactId>
|
|
||||||
<version>2.3.0</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>../hapi-fhir-base/src/main/java</source>
|
|
||||||
<source>../hapi-fhir-client/src/main/java</source>
|
|
||||||
<source>../hapi-fhir-server/src/main/java</source>
|
|
||||||
-->
|
|
||||||
<source>../hapi-fhir-jpaserver-model/src/main/java</source>
|
|
||||||
<source>../hapi-fhir-jpaserver-searchparam/src/main/java</source>
|
|
||||||
<source>../hapi-fhir-jpaserver-subscription/src/main/java</source>
|
|
||||||
<source>../hapi-fhir-jpaserver-base/src/main/java</source>
|
|
||||||
</sources>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-install-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<skip>true</skip>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-deploy-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<skip>true</skip>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
</plugins>
|
||||||
<resources>
|
|
||||||
</resources>
|
|
||||||
<testResources>
|
|
||||||
<!--
|
|
||||||
<testResource>
|
|
||||||
<directory>../hapi-fhir-base/src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
-->
|
|
||||||
<testResource>
|
|
||||||
<directory>../hapi-fhir-jpaserver-model/src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
<testResource>
|
|
||||||
<directory>../hapi-fhir-jpaserver-searchparam/src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
<testResource>
|
|
||||||
<directory>../hapi-fhir-jpaserver-subscription/src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
<testResource>
|
|
||||||
<directory>../hapi-fhir-jpaserver-base/src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
<!--
|
|
||||||
<testResource>
|
|
||||||
<directory>../hapi-fhir-structures-dstu/src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
<testResource>
|
|
||||||
<directory>../hapi-fhir-structures-dstu2/src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
<testResource>
|
|
||||||
<directory>../hapi-fhir-structures-hl7org-dstu2/src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
<testResource>
|
|
||||||
<directory>../hapi-fhir-structures-dstu3/src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
<testResource>
|
|
||||||
<directory>../hapi-fhir-client-okhttp/src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
-->
|
|
||||||
</testResources>
|
|
||||||
</build>
|
</build>
|
||||||
<reporting>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<skip>true</skip>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</reporting>
|
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -669,17 +669,6 @@
|
||||||
<goal>prepare-agent</goal>
|
<goal>prepare-agent</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
|
||||||
<id>post-integration-test</id>
|
|
||||||
<phase>install</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>report</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
|
|
||||||
<outputDirectory>${project.reporting.outputDirectory}/jacoco-report</outputDirectory>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ca.uhn.fhir.jpa.dao.data;
|
package ca.uhn.fhir.jpa.dao.data;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.jpa.entity.Search;
|
||||||
import ca.uhn.fhir.jpa.entity.SearchResult;
|
import ca.uhn.fhir.jpa.entity.SearchResult;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.domain.Slice;
|
import org.springframework.data.domain.Slice;
|
||||||
|
@ -44,4 +45,7 @@ public interface ISearchResultDao extends JpaRepository<SearchResult, Long> {
|
||||||
@Modifying
|
@Modifying
|
||||||
@Query("DELETE FROM SearchResult s WHERE s.myId IN :ids")
|
@Query("DELETE FROM SearchResult s WHERE s.myId IN :ids")
|
||||||
void deleteByIds(@Param("ids") List<Long> theContent);
|
void deleteByIds(@Param("ids") List<Long> theContent);
|
||||||
|
|
||||||
|
@Query("SELECT count(r) FROM SearchResult r WHERE r.mySearchPid = :search")
|
||||||
|
int countForSearch(@Param("search") Long theSearchPid);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,10 @@ import ca.uhn.fhir.model.api.Include;
|
||||||
import ca.uhn.fhir.rest.param.DateRangeParam;
|
import ca.uhn.fhir.rest.param.DateRangeParam;
|
||||||
import ca.uhn.fhir.rest.server.util.ICachedSearchDetails;
|
import ca.uhn.fhir.rest.server.util.ICachedSearchDetails;
|
||||||
import org.apache.commons.lang3.SerializationUtils;
|
import org.apache.commons.lang3.SerializationUtils;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
import org.hibernate.annotations.OptimisticLock;
|
import org.hibernate.annotations.OptimisticLock;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
@ -49,6 +52,22 @@ public class Search implements ICachedSearchDetails, Serializable {
|
||||||
private static final int MAX_SEARCH_QUERY_STRING = 10000;
|
private static final int MAX_SEARCH_QUERY_STRING = 10000;
|
||||||
private static final int FAILURE_MESSAGE_LENGTH = 500;
|
private static final int FAILURE_MESSAGE_LENGTH = 500;
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
private static final Logger ourLog = LoggerFactory.getLogger(Search.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this)
|
||||||
|
.append("myLastUpdatedHigh", myLastUpdatedHigh)
|
||||||
|
.append("myLastUpdatedLow", myLastUpdatedLow)
|
||||||
|
.append("myNumFound", myNumFound)
|
||||||
|
.append("myNumBlocked", myNumBlocked)
|
||||||
|
.append("myStatus", myStatus)
|
||||||
|
.append("myTotalCount", myTotalCount)
|
||||||
|
.append("myUuid", myUuid)
|
||||||
|
.append("myVersion", myVersion)
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
|
||||||
@Temporal(TemporalType.TIMESTAMP)
|
@Temporal(TemporalType.TIMESTAMP)
|
||||||
@Column(name = "CREATED", nullable = false, updatable = false)
|
@Column(name = "CREATED", nullable = false, updatable = false)
|
||||||
private Date myCreated;
|
private Date myCreated;
|
||||||
|
@ -77,6 +96,8 @@ public class Search implements ICachedSearchDetails, Serializable {
|
||||||
private Date myLastUpdatedLow;
|
private Date myLastUpdatedLow;
|
||||||
@Column(name = "NUM_FOUND", nullable = false)
|
@Column(name = "NUM_FOUND", nullable = false)
|
||||||
private int myNumFound;
|
private int myNumFound;
|
||||||
|
@Column(name = "NUM_BLOCKED", nullable = true)
|
||||||
|
private Integer myNumBlocked;
|
||||||
@Column(name = "PREFERRED_PAGE_SIZE", nullable = true)
|
@Column(name = "PREFERRED_PAGE_SIZE", nullable = true)
|
||||||
private Integer myPreferredPageSize;
|
private Integer myPreferredPageSize;
|
||||||
@Column(name = "RESOURCE_ID", nullable = true)
|
@Column(name = "RESOURCE_ID", nullable = true)
|
||||||
|
@ -118,6 +139,14 @@ public class Search implements ICachedSearchDetails, Serializable {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getNumBlocked() {
|
||||||
|
return myNumBlocked != null ? myNumBlocked : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumBlocked(int theNumBlocked) {
|
||||||
|
myNumBlocked = theNumBlocked;
|
||||||
|
}
|
||||||
|
|
||||||
public Date getExpiryOrNull() {
|
public Date getExpiryOrNull() {
|
||||||
return myExpiryOrNull;
|
return myExpiryOrNull;
|
||||||
}
|
}
|
||||||
|
@ -196,10 +225,12 @@ public class Search implements ICachedSearchDetails, Serializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getNumFound() {
|
public int getNumFound() {
|
||||||
|
ourLog.trace("getNumFound {}", myNumFound);
|
||||||
return myNumFound;
|
return myNumFound;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNumFound(int theNumFound) {
|
public void setNumFound(int theNumFound) {
|
||||||
|
ourLog.trace("setNumFound {}", theNumFound);
|
||||||
myNumFound = theNumFound;
|
myNumFound = theNumFound;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,10 +291,12 @@ public class Search implements ICachedSearchDetails, Serializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public SearchStatusEnum getStatus() {
|
public SearchStatusEnum getStatus() {
|
||||||
|
ourLog.trace("getStatus {}", myStatus);
|
||||||
return myStatus;
|
return myStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setStatus(SearchStatusEnum theStatus) {
|
public void setStatus(SearchStatusEnum theStatus) {
|
||||||
|
ourLog.trace("setStatus {}", theStatus);
|
||||||
myStatus = theStatus;
|
myStatus = theStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -232,7 +232,11 @@ public class SearchCoordinatorSvcImpl implements ISearchCoordinatorSvc {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return mySearchResultCacheSvc.fetchResultPids(search, theFrom, theTo);
|
List<Long> pids = mySearchResultCacheSvc.fetchResultPids(search, theFrom, theTo);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return pids;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -652,6 +656,7 @@ public class SearchCoordinatorSvcImpl implements ISearchCoordinatorSvc {
|
||||||
}
|
}
|
||||||
|
|
||||||
ArrayList<Long> unsyncedPids = myUnsyncedPids;
|
ArrayList<Long> unsyncedPids = myUnsyncedPids;
|
||||||
|
int countBlocked = 0;
|
||||||
|
|
||||||
// Interceptor call: STORAGE_PREACCESS_RESOURCES
|
// Interceptor call: STORAGE_PREACCESS_RESOURCES
|
||||||
// This can be used to remove results from the search result details before
|
// This can be used to remove results from the search result details before
|
||||||
|
@ -669,6 +674,7 @@ public class SearchCoordinatorSvcImpl implements ISearchCoordinatorSvc {
|
||||||
unsyncedPids.remove(i);
|
unsyncedPids.remove(i);
|
||||||
myCountBlockedThisPass++;
|
myCountBlockedThisPass++;
|
||||||
myCountSavedTotal++;
|
myCountSavedTotal++;
|
||||||
|
countBlocked++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -685,7 +691,6 @@ public class SearchCoordinatorSvcImpl implements ISearchCoordinatorSvc {
|
||||||
unsyncedPids.clear();
|
unsyncedPids.clear();
|
||||||
|
|
||||||
if (theResultIter.hasNext() == false) {
|
if (theResultIter.hasNext() == false) {
|
||||||
mySearch.setNumFound(myCountSavedTotal);
|
|
||||||
int skippedCount = theResultIter.getSkippedCount();
|
int skippedCount = theResultIter.getSkippedCount();
|
||||||
int totalFetched = skippedCount + myCountSavedThisPass + myCountBlockedThisPass;
|
int totalFetched = skippedCount + myCountSavedThisPass + myCountBlockedThisPass;
|
||||||
ourLog.trace("MaxToFetch[{}] SkippedCount[{}] CountSavedThisPass[{}] CountSavedThisTotal[{}] AdditionalPrefetchRemaining[{}]", myMaxResultsToFetch, skippedCount, myCountSavedThisPass, myCountSavedTotal, myAdditionalPrefetchThresholdsRemaining);
|
ourLog.trace("MaxToFetch[{}] SkippedCount[{}] CountSavedThisPass[{}] CountSavedThisTotal[{}] AdditionalPrefetchRemaining[{}]", myMaxResultsToFetch, skippedCount, myCountSavedThisPass, myCountSavedTotal, myAdditionalPrefetchThresholdsRemaining);
|
||||||
|
@ -707,6 +712,7 @@ public class SearchCoordinatorSvcImpl implements ISearchCoordinatorSvc {
|
||||||
}
|
}
|
||||||
|
|
||||||
mySearch.setNumFound(myCountSavedTotal);
|
mySearch.setNumFound(myCountSavedTotal);
|
||||||
|
mySearch.setNumBlocked(mySearch.getNumBlocked() + countBlocked);
|
||||||
|
|
||||||
int numSynced;
|
int numSynced;
|
||||||
synchronized (mySyncedPids) {
|
synchronized (mySyncedPids) {
|
||||||
|
@ -1033,10 +1039,6 @@ public class SearchCoordinatorSvcImpl implements ISearchCoordinatorSvc {
|
||||||
return super.call();
|
return super.call();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Long> getResourcePids(int theFromIndex, int theToIndex) {
|
|
||||||
return super.getResourcePids(theFromIndex, theToIndex);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -56,9 +56,10 @@ public class DatabaseSearchResultCacheSvcImpl implements ISearchResultCacheSvc {
|
||||||
.findWithSearchPid(theSearch.getId(), page)
|
.findWithSearchPid(theSearch.getId(), page)
|
||||||
.getContent();
|
.getContent();
|
||||||
|
|
||||||
ourLog.trace("fetchResultPids for range {}-{} returned {} pids", theFrom, theTo, retVal.size());
|
ourLog.debug("fetchResultPids for range {}-{} returned {} pids", theFrom, theTo, retVal.size());
|
||||||
|
|
||||||
Validate.isTrue(theSearch.getNumFound() < theTo || retVal.size() == (theTo - theFrom), "Failed to find results in cache, requested %d - %d and git %d with numfound= %d", theFrom, theTo, retVal.size(), theSearch.getNumFound());
|
// FIXME: should we remove the blocked number from this message?
|
||||||
|
Validate.isTrue((theSearch.getNumFound() - theSearch.getNumBlocked()) < theTo || retVal.size() == (theTo - theFrom), "Failed to find results in cache, requested %d - %d and got %d with total found=%d and blocked %s", theFrom, theTo, retVal.size(), theSearch.getNumFound(), theSearch.getNumBlocked());
|
||||||
|
|
||||||
return new ArrayList<>(retVal);
|
return new ArrayList<>(retVal);
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,6 +77,10 @@ public abstract class BaseJpaR4Test extends BaseJpaTest {
|
||||||
private static JpaValidationSupportChainR4 ourJpaValidationSupportChainR4;
|
private static JpaValidationSupportChainR4 ourJpaValidationSupportChainR4;
|
||||||
private static IFhirResourceDaoValueSet<ValueSet, Coding, CodeableConcept> ourValueSetDao;
|
private static IFhirResourceDaoValueSet<ValueSet, Coding, CodeableConcept> ourValueSetDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected ISearchDao mySearchEntityDao;
|
||||||
|
@Autowired
|
||||||
|
protected ISearchResultDao mySearchResultDao;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier("myResourceCountsCache")
|
@Qualifier("myResourceCountsCache")
|
||||||
protected ResourceCountCache myResourceCountsCache;
|
protected ResourceCountCache myResourceCountsCache;
|
||||||
|
|
|
@ -6,6 +6,7 @@ import ca.uhn.fhir.interceptor.api.Pointcut;
|
||||||
import ca.uhn.fhir.interceptor.executor.InterceptorService;
|
import ca.uhn.fhir.interceptor.executor.InterceptorService;
|
||||||
import ca.uhn.fhir.jpa.config.TestR4Config;
|
import ca.uhn.fhir.jpa.config.TestR4Config;
|
||||||
import ca.uhn.fhir.jpa.dao.DaoConfig;
|
import ca.uhn.fhir.jpa.dao.DaoConfig;
|
||||||
|
import ca.uhn.fhir.jpa.entity.Search;
|
||||||
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
||||||
import ca.uhn.fhir.rest.api.SortOrderEnum;
|
import ca.uhn.fhir.rest.api.SortOrderEnum;
|
||||||
import ca.uhn.fhir.rest.api.SortSpec;
|
import ca.uhn.fhir.rest.api.SortSpec;
|
||||||
|
@ -127,13 +128,22 @@ public class ConsentEventsDaoR4Test extends BaseJpaR4SystemTest {
|
||||||
List<String> returnedIdValues = toUnqualifiedVersionlessIdValues(resources);
|
List<String> returnedIdValues = toUnqualifiedVersionlessIdValues(resources);
|
||||||
assertEquals(myObservationIdsEvenOnly.subList(0, 10), returnedIdValues);
|
assertEquals(myObservationIdsEvenOnly.subList(0, 10), returnedIdValues);
|
||||||
assertEquals(1, hitCount.get());
|
assertEquals(1, hitCount.get());
|
||||||
assertEquals(myObservationIds.subList(0, 20), interceptedResourceIds);
|
assertEquals("Wrong response from " + outcome.getClass(), myObservationIds.subList(0, 20), interceptedResourceIds);
|
||||||
|
|
||||||
// Fetch the next 30 (do cross a fetch boundary)
|
// Fetch the next 30 (do cross a fetch boundary)
|
||||||
outcome = myPagingProvider.retrieveResultList(mySrd, outcome.getUuid());
|
String searchId = outcome.getUuid();
|
||||||
|
outcome = myPagingProvider.retrieveResultList(mySrd, searchId);
|
||||||
resources = outcome.getResources(10, 40);
|
resources = outcome.getResources(10, 40);
|
||||||
returnedIdValues = toUnqualifiedVersionlessIdValues(resources);
|
returnedIdValues = toUnqualifiedVersionlessIdValues(resources);
|
||||||
assertEquals(myObservationIdsEvenOnly.subList(10, 25), returnedIdValues);
|
if (!myObservationIdsEvenOnly.subList(10,25).equals(returnedIdValues)) {
|
||||||
|
if (resources.size() != 1) {
|
||||||
|
runInTransaction(() -> {
|
||||||
|
Search search = mySearchEntityDao.findByUuidAndFetchIncludes(searchId).get();
|
||||||
|
fail("Failed to load - " + mySearchResultDao.countForSearch(search.getId()) + " results in " + search);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assertEquals("Wrong response from " + outcome.getClass(), myObservationIdsEvenOnly.subList(10, 25), returnedIdValues);
|
||||||
assertEquals(2, hitCount.get());
|
assertEquals(2, hitCount.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@ package ca.uhn.fhir.jpa.dao.r4;
|
||||||
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
||||||
import ca.uhn.fhir.jpa.dao.DaoConfig;
|
import ca.uhn.fhir.jpa.dao.DaoConfig;
|
||||||
import ca.uhn.fhir.jpa.dao.data.ISearchDao;
|
import ca.uhn.fhir.jpa.dao.data.ISearchDao;
|
||||||
|
import ca.uhn.fhir.jpa.dao.data.ISearchResultDao;
|
||||||
|
import ca.uhn.fhir.jpa.entity.Search;
|
||||||
import ca.uhn.fhir.jpa.model.entity.*;
|
import ca.uhn.fhir.jpa.model.entity.*;
|
||||||
import ca.uhn.fhir.jpa.searchparam.MatchUrlService;
|
import ca.uhn.fhir.jpa.searchparam.MatchUrlService;
|
||||||
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
||||||
|
@ -56,8 +58,6 @@ public class FhirResourceDaoR4SearchNoFtTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
MatchUrlService myMatchUrlService;
|
MatchUrlService myMatchUrlService;
|
||||||
@Autowired
|
|
||||||
private ISearchDao mySearchEntityDao;
|
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void afterResetSearchSize() {
|
public void afterResetSearchSize() {
|
||||||
|
@ -1325,7 +1325,6 @@ public class FhirResourceDaoR4SearchNoFtTest extends BaseJpaR4Test {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSearchDateWrongParam() {
|
public void testSearchDateWrongParam() {
|
||||||
Patient p1 = new Patient();
|
Patient p1 = new Patient();
|
||||||
|
@ -1371,6 +1370,14 @@ public class FhirResourceDaoR4SearchNoFtTest extends BaseJpaR4Test {
|
||||||
String searchId = found.getUuid();
|
String searchId = found.getUuid();
|
||||||
for (int i = 0; i < 9; i++) {
|
for (int i = 0; i < 9; i++) {
|
||||||
List<IBaseResource> resources = found.getResources(i, i + 1);
|
List<IBaseResource> resources = found.getResources(i, i + 1);
|
||||||
|
if (resources.size() != 1) {
|
||||||
|
int finalI = i;
|
||||||
|
int finalI1 = i;
|
||||||
|
runInTransaction(() -> {
|
||||||
|
Search search = mySearchEntityDao.findByUuidAndFetchIncludes(searchId).get();
|
||||||
|
fail("Failed to load range " + finalI + " - " + (finalI1 + 1) + " - " + mySearchResultDao.countForSearch(search.getId()) + " results in " + search);
|
||||||
|
});
|
||||||
|
}
|
||||||
assertThat("Failed to load range " + i + " - " + (i + 1) + " - from provider of type: " + found.getClass(), resources, hasSize(1));
|
assertThat("Failed to load range " + i + " - " + (i + 1) + " - from provider of type: " + found.getClass(), resources, hasSize(1));
|
||||||
Patient nextResource = (Patient) resources.get(0);
|
Patient nextResource = (Patient) resources.get(0);
|
||||||
dates.add(nextResource.getBirthDateElement().getValueAsString());
|
dates.add(nextResource.getBirthDateElement().getValueAsString());
|
||||||
|
|
|
@ -6,6 +6,7 @@ import ca.uhn.fhir.jpa.dao.data.ISearchResultDao;
|
||||||
import ca.uhn.fhir.jpa.entity.Search;
|
import ca.uhn.fhir.jpa.entity.Search;
|
||||||
import ca.uhn.fhir.jpa.model.entity.ResourceTable;
|
import ca.uhn.fhir.jpa.model.entity.ResourceTable;
|
||||||
import ca.uhn.fhir.jpa.model.search.SearchStatusEnum;
|
import ca.uhn.fhir.jpa.model.search.SearchStatusEnum;
|
||||||
|
import ca.uhn.fhir.jpa.search.PersistedJpaBundleProvider;
|
||||||
import ca.uhn.fhir.jpa.search.SearchCoordinatorSvcImpl;
|
import ca.uhn.fhir.jpa.search.SearchCoordinatorSvcImpl;
|
||||||
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
||||||
import ca.uhn.fhir.rest.api.SearchTotalModeEnum;
|
import ca.uhn.fhir.rest.api.SearchTotalModeEnum;
|
||||||
|
@ -142,8 +143,9 @@ public class FhirResourceDaoR4SearchOptimizedTest extends BaseJpaR4Test {
|
||||||
assertEquals(201, results.size().intValue());
|
assertEquals(201, results.size().intValue());
|
||||||
ids = toUnqualifiedVersionlessIdValues(results, 0, 10, true);
|
ids = toUnqualifiedVersionlessIdValues(results, 0, 10, true);
|
||||||
assertThat(ids, hasSize(10));
|
assertThat(ids, hasSize(10));
|
||||||
IBundleProvider bundleProvider = myDatabaseBackedPagingProvider.retrieveResultList(null, uuid);
|
PersistedJpaBundleProvider bundleProvider = (PersistedJpaBundleProvider) myDatabaseBackedPagingProvider.retrieveResultList(null, uuid);
|
||||||
Integer bundleSize = bundleProvider.size();
|
Integer bundleSize = bundleProvider.size();
|
||||||
|
assertNotNull("Null size from provider of type " + bundleProvider.getClass() + " - Cache hit: " + bundleProvider.isCacheHit(), bundleSize);
|
||||||
assertEquals(201, bundleSize.intValue());
|
assertEquals(201, bundleSize.intValue());
|
||||||
|
|
||||||
// Search with count only
|
// Search with count only
|
||||||
|
|
|
@ -63,6 +63,7 @@ public class HapiFhirJpaMigrationTasks extends BaseMigrationTasks<VersionEnum> {
|
||||||
|
|
||||||
// HFJ_SEARCH
|
// HFJ_SEARCH
|
||||||
version.onTable("HFJ_SEARCH").addColumn("EXPIRY_OR_NULL").nullable().type(BaseTableColumnTypeTask.ColumnTypeEnum.DATE_TIMESTAMP);
|
version.onTable("HFJ_SEARCH").addColumn("EXPIRY_OR_NULL").nullable().type(BaseTableColumnTypeTask.ColumnTypeEnum.DATE_TIMESTAMP);
|
||||||
|
version.onTable("HFJ_SEARCH").addColumn("NUM_BLOCKED").nullable().type(BaseTableColumnTypeTask.ColumnTypeEnum.INT);
|
||||||
|
|
||||||
// HFJ_BLK_EXPORT_JOB
|
// HFJ_BLK_EXPORT_JOB
|
||||||
version.addIdGenerator("SEQ_BLKEXJOB_PID");
|
version.addIdGenerator("SEQ_BLKEXJOB_PID");
|
||||||
|
|
|
@ -159,17 +159,6 @@
|
||||||
<goal>prepare-agent</goal>
|
<goal>prepare-agent</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
|
||||||
<id>post-integration-test</id>
|
|
||||||
<phase>install</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>report</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
|
|
||||||
<outputDirectory>${project.reporting.outputDirectory}/jacoco-report</outputDirectory>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
|
|
@ -148,17 +148,6 @@
|
||||||
<goal>prepare-agent</goal>
|
<goal>prepare-agent</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
|
||||||
<id>post-integration-test</id>
|
|
||||||
<phase>install</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>report</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
|
|
||||||
<outputDirectory>${project.reporting.outputDirectory}/jacoco-report</outputDirectory>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
|
|
@ -142,17 +142,6 @@
|
||||||
<goal>prepare-agent</goal>
|
<goal>prepare-agent</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
|
||||||
<id>post-integration-test</id>
|
|
||||||
<phase>install</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>report</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
|
|
||||||
<outputDirectory>${project.reporting.outputDirectory}/jacoco-report</outputDirectory>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
|
|
@ -56,14 +56,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<classFolders>
|
|
||||||
<classFolder>${basedir}/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-base/target/classes</classFolder>
|
|
||||||
</classFolders>
|
|
||||||
<sourceFolders>
|
|
||||||
<sourceFolder>${basedir}/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-base/src/main/java</sourceFolder>
|
|
||||||
</sourceFolders>
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
|
@ -77,14 +77,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<classFolders>
|
|
||||||
<classFolder>${basedir}/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-base/target/classes</classFolder>
|
|
||||||
</classFolders>
|
|
||||||
<sourceFolders>
|
|
||||||
<sourceFolder>${basedir}/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-base/src/main/java</sourceFolder>
|
|
||||||
</sourceFolders>
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
|
@ -171,14 +171,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<classFolders>
|
|
||||||
<classFolder>${basedir}/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-base/target/classes</classFolder>
|
|
||||||
</classFolders>
|
|
||||||
<sourceFolders>
|
|
||||||
<sourceFolder>${basedir}/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-base/src/main/java</sourceFolder>
|
|
||||||
</sourceFolders>
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
|
@ -255,18 +255,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<classFolders>
|
|
||||||
<classFolder>${basedir}/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-base/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-client/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-server/target/classes</classFolder>
|
|
||||||
</classFolders>
|
|
||||||
<sourceFolders>
|
|
||||||
<sourceFolder>${basedir}/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-base/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-client/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-server/src/main/java</sourceFolder>
|
|
||||||
</sourceFolders>
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
|
@ -229,18 +229,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<!--<classFolders>-->
|
|
||||||
<!--<classFolder>${basedir}/target/classes</classFolder>-->
|
|
||||||
<!--<classFolder>${basedir}/../hapi-fhir-base/target/classes</classFolder>-->
|
|
||||||
<!--<classFolder>${basedir}/../hapi-fhir-client/target/classes</classFolder>-->
|
|
||||||
<!--<classFolder>${basedir}/../hapi-fhir-server/target/classes</classFolder>-->
|
|
||||||
<!--</classFolders>-->
|
|
||||||
<!--<sourceFolders>-->
|
|
||||||
<!--<sourceFolder>${basedir}/src/main/java</sourceFolder>-->
|
|
||||||
<!--<sourceFolder>${basedir}/../hapi-fhir-base/src/main/java</sourceFolder>-->
|
|
||||||
<!--<sourceFolder>${basedir}/../hapi-fhir-client/src/main/java</sourceFolder>-->
|
|
||||||
<!--<sourceFolder>${basedir}/../hapi-fhir-server/src/main/java</sourceFolder>-->
|
|
||||||
<!--</sourceFolders>-->
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
|
@ -254,18 +254,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<classFolders>
|
|
||||||
<classFolder>${basedir}/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}../hapi-fhir-base/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-client/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-server/target/classes</classFolder>
|
|
||||||
</classFolders>
|
|
||||||
<sourceFolders>
|
|
||||||
<sourceFolder>${basedir}/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-base/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-client/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-server/src/main/java</sourceFolder>
|
|
||||||
</sourceFolders>
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
|
@ -296,18 +296,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<classFolders>
|
|
||||||
<classFolder>${basedir}/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-base/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-client/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-server/target/classes</classFolder>
|
|
||||||
</classFolders>
|
|
||||||
<sourceFolders>
|
|
||||||
<sourceFolder>${basedir}/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-base/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-client/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-server/src/main/java</sourceFolder>
|
|
||||||
</sourceFolders>
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
|
@ -289,18 +289,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<classFolders>
|
|
||||||
<classFolder>${basedir}/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-base/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-client/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-server/target/classes</classFolder>
|
|
||||||
</classFolders>
|
|
||||||
<sourceFolders>
|
|
||||||
<sourceFolder>${basedir}/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-base/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-client/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-server/src/main/java</sourceFolder>
|
|
||||||
</sourceFolders>
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
|
@ -254,18 +254,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<classFolders>
|
|
||||||
<classFolder>${basedir}/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-base/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-client/target/classes</classFolder>
|
|
||||||
<classFolder>${basedir}/../hapi-fhir-server/target/classes</classFolder>
|
|
||||||
</classFolders>
|
|
||||||
<sourceFolders>
|
|
||||||
<sourceFolder>${basedir}/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-base/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-client/src/main/java</sourceFolder>
|
|
||||||
<sourceFolder>${basedir}/../hapi-fhir-server/src/main/java</sourceFolder>
|
|
||||||
</sourceFolders>
|
|
||||||
<dumpOnExit>true</dumpOnExit>
|
<dumpOnExit>true</dumpOnExit>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
Loading…
Reference in New Issue