1
0
mirror of https://github.com/hapifhir/hapi-fhir.git synced 2025-03-09 14:33:32 +00:00
Emre Dincturk 4feb489735
6486 implement patient merge ()
* begin with failing test

* wpi merge operation provider

* wip code resolve references and some refactoring

* respect status code set in providers

* more validation and code to update resources after refs are updated

* added source-delete parameter and some validation tests on result-patient

* update test

* update test

* return target patient as output parameter, do not add replacedby link to target if src is to be deleted

* output definition

* ignore identifiers in ref, more unit tests, return target in preview mode

* output definition

* return input parameters in the merge operation output

* copy identifiers from source to target (no duplicate check)

* add shared identifier

* add shared identifier

* moar asserts

* moar asserts

* fixing result patient

* fixing result patient

* fixing result patient

* add duplicate check when copying source identifiers to target

* copy result-patient before passing it to service

* add preview to test

* update preview asserts

* move IReplaceReferencesSvc to storage-package, and call replaceReference in patient merge

* moar tests

* cleanup

* add task test

* add replace references test

* kebab-case replace references

* add sync -> async switch

* test

* test

* start migrating to stream

* validate result-patient does not have link to source if delete-source is true

* add update count to msg in preview mode

* spotless

* change page size -> batch size and create new default max in storage settings

* spotless

* switched to patch transaction

* switched to patch transaction

* switched to patch transaction

* switched to patch transaction

* strip version from returned task

* spotless

* spotless

* async replace references test passes

* align tests

* test small batch size

* do src and target updates in trx, add validation src is not already replaced

* start building batch 2
improve dao

* start building batch 2
improve dao

* start building batch 2
improve dao

* move test setup out to helper

* move replace references tests out

* switch helper to use dao

* incresed unit test coverage

* build out batch

* build out batch

* update test to add link to result-patient only if the source is not to be deleted

* batch passes test

* batch passes test

* batch passes test

* made patient-merge return the Task returned from replace references

* batch passes test

* batch passes test

* consolidate async and sync supporting methods into a single storage service

* consolidate async and sync supporting methods into a single storage service

* add merge batch job

* add merge batch job

* added FIXMES for ED

* added FIXMES for ED

* update test to not validate task in preview mode

* mark identfier copied from source to target as old

* copyright headers

* runMaintenancePass before checking merge task status, and renamed test method for merge

* fix test

* fix test

* default

* invoke async merge job in merge service

* starting work on new docs

* starting work on new docs

* document $replace-references

* separate default from max

* fixme

* moar fixme

* moar fixme

* ken last fixme

* return 202 status on async merge, update MergeBatchTest to do more validations

* async success message, inject mergeservice, add async merge unit tests

* make validatePatchResultBundle static again

* added test for adding reference while merge in progress, and merge error handler

* fixed

* fixed

* added error handler to replace references job

* review

* javadoc

* organize imports

* make ValidationResult immutable

* make ValidationResult immutable

* rename ReplaceReferencesRequest

* rename ReplaceReferencesRequest

* rename MergeResourceHelper

* rename MergeResourceHelper

* javadoc

* split merge validation service out from merge service

* split merge validation service out from merge service

* split merge validation service out from merge service

* review feedback

* review feedback

* rename param constants

* rename param constants

* remove IdentifierUtil for visibility

* remove IdentifierUtil for visibility

* final review of hapi side

* review feedback

* review feedback

* fix checkstyle errors, rename MergeOperationInputParameters and add Msg.code

* fix replace reference parameter type, and some copyright headers

* review feedback

* review feedback

* review feedback

* review feedback

* review feedback

* review feedback

* review feedback

* review feedback

* move $merge into JPA R4

* move $merge into JPA R4

* still need to return 412

* still need to return 412

* return 412

* moar tests

* moar tests

* fix async batch size

* fix async batch size

* fix async batch size

* exception code

* exception code

* fix bean wiring

* fix bean wiring

* fix test

* fix test

* fix test

* fix test

* fix test

* bump pom versions

---------

Co-authored-by: Ken Stevens <ken@smiledigitalhealth.com>
2024-12-24 17:47:48 -05:00

587 lines
23 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-fhir</artifactId>
<version>7.7.16-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>hapi-tinder-test</artifactId>
<packaging>jar</packaging>
<name>HAPI Tinder Plugin - Test Project</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-structures-dstu2</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Because Tinder is a part of the HAPI FHIR build process (it generates a bunch of the actual HAPI structure code), but also uses HAPI FHIR in order to run (e.g. to load ValueSet resources), we keep
the dependencies for the structures a version behind the main library. This is weird, but it works. -->
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-structures-dstu2.1</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-base</artifactId>
</exclusion>
</exclusions>
</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-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-jpaserver-base</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-tinder-plugin</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-storage-batch2</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-tinder-plugin</artifactId>
<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-structures-dstu2</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-structures-dstu2.1</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-base</artifactId>
</exclusion>
</exclusions>
</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>
</dependencies>
<executions>
<execution>
<id>generalstructs</id>
<goals>
<goal>generate-structures</goal>
</goals>
<configuration>
<package>ca.uhn.test.realstructs</package>
<version>dstu2</version>
<baseResourceNames>
<baseResourceName>patient</baseResourceName>
<baseResourceName>valueset</baseResourceName>
<baseResourceName>organization</baseResourceName>
<baseResourceName>device</baseResourceName>
<baseResourceName>location</baseResourceName>
<baseResourceName>practitioner</baseResourceName>
<baseResourceName>list</baseResourceName>
<baseResourceName>auditevent</baseResourceName>
</baseResourceNames>
<buildDatatypes>true</buildDatatypes>
</configuration>
</execution>
<execution>
<id>generic_multi_dstu2</id>
<goals>
<goal>generate-multi-files</goal>
</goals>
<configuration>
<version>dstu2</version>
<generateResources>true</generateResources>
<templateFile>${project.basedir}/src/test/resources/templates/resource_test.vm</templateFile>
<targetSourceDirectory>${project.build.directory}/generated-sources/tinder</targetSourceDirectory>
<targetPackage>ca.uhn.test.generic.multi</targetPackage>
<filenameSuffix>ResourceTest.java</filenameSuffix>
<includeResources>
<includeResource>patient</includeResource>
<includeResource>organization</includeResource>
</includeResources>
</configuration>
</execution>
<execution>
<id>generic_multi_dstu3</id>
<goals>
<goal>generate-multi-files</goal>
</goals>
<configuration>
<version>dstu3</version>
<generateResources>true</generateResources>
<resourceSource>model</resourceSource>
<templateFile>${project.basedir}/src/test/resources/templates/resource_test.vm</templateFile>
<targetSourceDirectory>${project.build.directory}/generated-sources/tinder</targetSourceDirectory>
<targetPackage>ca.uhn.test.generic.multi.dstu3</targetPackage>
<filenameSuffix>ResourceTest.java</filenameSuffix>
<includeResources>
<includeResource>patient</includeResource>
<includeResource>organization</includeResource>
</includeResources>
</configuration>
</execution>
<execution>
<id>generic_multi_r4</id>
<goals>
<goal>generate-multi-files</goal>
</goals>
<configuration>
<version>r4</version>
<generateResources>true</generateResources>
<resourceSource>model</resourceSource>
<templateFile>${project.basedir}/src/test/resources/templates/resource_test.vm</templateFile>
<targetSourceDirectory>${project.build.directory}/generated-sources/tinder</targetSourceDirectory>
<targetPackage>ca.uhn.test.generic.multi.r4</targetPackage>
<filenameSuffix>ResourceTest.java</filenameSuffix>
<includeResources>
<includeResource>patient</includeResource>
<includeResource>organization</includeResource>
</includeResources>
</configuration>
</execution>
<execution>
<id>generic_multi_r5</id>
<goals>
<goal>generate-multi-files</goal>
</goals>
<configuration>
<version>r5</version>
<generateResources>true</generateResources>
<resourceSource>model</resourceSource>
<templateFile>${project.basedir}/src/test/resources/templates/resource_test.vm</templateFile>
<targetSourceDirectory>${project.build.directory}/generated-sources/tinder</targetSourceDirectory>
<targetPackage>ca.uhn.test.generic.multi.r5</targetPackage>
<filenameSuffix>ResourceTest.java</filenameSuffix>
<includeResources>
<includeResource>patient</includeResource>
<includeResource>organization</includeResource>
</includeResources>
</configuration>
</execution>
<execution>
<id>generic_multi_json</id>
<goals>
<goal>generate-multi-files</goal>
</goals>
<configuration>
<version>dstu2</version>
<generateResources>true</generateResources>
<resourceSource>spreadsheet</resourceSource>
<templateFile>${project.basedir}/src/test/resources/templates/resource_map.vm</templateFile>
<velocityPath>${project.basedir}/src/test/resources/macros</velocityPath>
<targetResourceDirectory>${project.build.directory}/generated-resources/tinder</targetResourceDirectory>
<targetFolder>maps</targetFolder>
<filenameSuffix>_Map.json</filenameSuffix>
<includeResources>
<includeResource>patient</includeResource>
<includeResource>organization</includeResource>
<includeResource>bundle</includeResource>
<includeResource>composition</includeResource>
</includeResources>
</configuration>
</execution>
<execution>
<id>generic_single_dstu2</id>
<goals>
<goal>generate-single-file</goal>
</goals>
<configuration>
<version>dstu2</version>
<generateResources>true</generateResources>
<templateFile>${project.basedir}/src/test/resources/templates/resource_test_beans_java.vm</templateFile>
<targetSourceDirectory>${project.build.directory}/generated-sources/tinder</targetSourceDirectory>
<targetPackage>ca.uhn.test.generic.single</targetPackage>
<packageBase>ca.uhn.test.generic.multi</packageBase>
<targetFile>TestConfigDstu2.java</targetFile>
<includeResources>
<includeResource>patient</includeResource>
<includeResource>organization</includeResource>
</includeResources>
</configuration>
</execution>
<execution>
<id>generic_single_dstu3</id>
<goals>
<goal>generate-single-file</goal>
</goals>
<configuration>
<version>dstu3</version>
<generateResources>true</generateResources>
<resourceSource>model</resourceSource>
<templateFile>${project.basedir}/src/test/resources/templates/resource_test_beans_java.vm</templateFile>
<targetSourceDirectory>${project.build.directory}/generated-sources/tinder</targetSourceDirectory>
<targetPackage>ca.uhn.test.generic.single</targetPackage>
<packageBase>ca.uhn.test.generic.multi</packageBase>
<targetFile>TestConfigDstu3.java</targetFile>
<includeResources>
<includeResource>patient</includeResource>
<includeResource>organization</includeResource>
</includeResources>
</configuration>
</execution>
<execution>
<id>generic_single_r4</id>
<goals>
<goal>generate-single-file</goal>
</goals>
<configuration>
<version>r4</version>
<generateResources>true</generateResources>
<resourceSource>model</resourceSource>
<templateFile>${project.basedir}/src/test/resources/templates/resource_test_beans_java.vm</templateFile>
<targetSourceDirectory>${project.build.directory}/generated-sources/tinder</targetSourceDirectory>
<targetPackage>ca.uhn.test.generic.single.r4</targetPackage>
<packageBase>ca.uhn.test.generic.multi.r4</packageBase>
<targetFile>TestConfigR4.java</targetFile>
<includeResources>
<includeResource>patient</includeResource>
<includeResource>organization</includeResource>
</includeResources>
</configuration>
</execution>
<execution>
<id>generic_single_r5</id>
<goals>
<goal>generate-single-file</goal>
</goals>
<configuration>
<version>r5</version>
<generateResources>true</generateResources>
<resourceSource>model</resourceSource>
<templateFile>${project.basedir}/src/test/resources/templates/resource_test_beans_java.vm</templateFile>
<targetSourceDirectory>${project.build.directory}/generated-sources/tinder</targetSourceDirectory>
<targetPackage>ca.uhn.test.generic.single.r5</targetPackage>
<packageBase>ca.uhn.test.generic.multi.r5</packageBase>
<targetFile>TestConfigR5.java</targetFile>
<includeResources>
<includeResource>patient</includeResource>
<includeResource>organization</includeResource>
</includeResources>
</configuration>
</execution>
<execution>
<id>generic_single_json</id>
<goals>
<goal>generate-single-file</goal>
</goals>
<configuration>
<version>dstu2</version>
<generateDatatypes>true</generateDatatypes>
<templateFile>${project.basedir}/src/test/resources/templates/composite_map.vm</templateFile>
<velocityPath>${project.basedir}/src/test/resources/macros</velocityPath>
<targetResourceDirectory>${project.build.directory}/generated-resources/tinder</targetResourceDirectory>
<targetFolder>maps</targetFolder>
<targetFile>Datatypes_Dstu2.json</targetFile>
<includeResources>
<includeResource>patient</includeResource>
<includeResource>organization</includeResource>
</includeResources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>testTinderTask</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<taskdef name="hapi-tinder" classname="ca.uhn.fhir.tinder.ant.TinderGeneratorTask" classpathref="maven.plugin.classpath" />
<hapi-tinder templateFile="${project.basedir}/src/test/resources/templates/resource_test.vm"
generateResources="true" targetSourceDirectory="${project.build.directory}/generated-sources/tinder"
targetPackage="ca.uhn.test.ant.multi" filenameSuffix="ResourceTest.java" projectHome="${project.basedir}/.."
version="dstu2" includeResources="patient,organization" />
<hapi-tinder templateFile="${project.basedir}/src/test/resources/templates/resource_test.vm" resourceSource="model"
generateResources="true" targetSourceDirectory="${project.build.directory}/generated-sources/tinder"
targetPackage="ca.uhn.test.ant.multi.dstu3" filenameSuffix="ResourceTest.java" projectHome="${project.basedir}/.."
version="dstu3" includeResources="patient,organization" />
<hapi-tinder templateFile="${project.basedir}/src/test/resources/templates/resource_test.vm" resourceSource="model"
generateResources="true" targetSourceDirectory="${project.build.directory}/generated-sources/tinder"
targetPackage="ca.uhn.test.ant.multi.r4" filenameSuffix="ResourceTest.java" projectHome="${project.basedir}/.."
version="r4" includeResources="patient,organization" />
<hapi-tinder templateFile="${project.basedir}/src/test/resources/templates/resource_test.vm" resourceSource="model"
generateResources="true" targetSourceDirectory="${project.build.directory}/generated-sources/tinder"
targetPackage="ca.uhn.test.ant.multi.r5" filenameSuffix="ResourceTest.java" projectHome="${project.basedir}/.."
version="r5" includeResources="patient,organization" />
<hapi-tinder templateFile="${project.basedir}/src/test/resources/templates/resource_test_beans_java.vm"
generateResources="true" targetSourceDirectory="${project.build.directory}/generated-sources/tinder"
targetFile="TestConfigDstu2.java" targetPackage="ca.uhn.test.ant.single" packageBase="ca.uhn.test.ant.multi"
projectHome="${project.basedir}/.." version="dstu2" includeResources="patient,organization" />
<hapi-tinder templateFile="${project.basedir}/src/test/resources/templates/resource_test_beans_java.vm" resourceSource="model"
generateResources="true" targetSourceDirectory="${project.build.directory}/generated-sources/tinder"
targetFile="TestConfigDstu3.java" targetPackage="ca.uhn.test.ant.single" packageBase="ca.uhn.test.ant.multi.dstu3"
projectHome="${project.basedir}/.." version="dstu3" includeResources="patient,organization" />
<hapi-tinder templateFile="${project.basedir}/src/test/resources/templates/resource_test_beans_java.vm" resourceSource="model"
generateResources="true" targetSourceDirectory="${project.build.directory}/generated-sources/tinder"
targetFile="TestConfigR4.java" targetPackage="ca.uhn.test.ant.single" packageBase="ca.uhn.test.ant.multi.r4"
projectHome="${project.basedir}/.." version="r4" includeResources="patient,organization" />
<hapi-tinder templateFile="${project.basedir}/src/test/resources/templates/resource_test_beans_java.vm" resourceSource="model"
generateResources="true" targetSourceDirectory="${project.build.directory}/generated-sources/tinder"
targetFile="TestConfigR5.java" targetPackage="ca.uhn.test.ant.single" packageBase="ca.uhn.test.ant.multi.r5"
projectHome="${project.basedir}/.." version="r5" includeResources="patient,organization" />
</target>
</configuration>
</execution>
</executions>
<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-structures-dstu2</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-structures-dstu2.1</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir-base</artifactId>
</exclusion>
</exclusions>
</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-tinder-plugin</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<configuration>
<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
</configuration>
</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>${basedir}/src/main/resources</directory>
</resource>
<resource>
<directory>${basedir}/target/generated-resources/tinder</directory>
</resource>
</resources>
</build>
<profiles>
<!-- For releases, we need to generate javadoc and sources JAR -->
<profile>
<id>release</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>deployToSonatype</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.4.0</version>
<executions>
<execution>
<id>attach-javadoc</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>