From 6baf1995c9e23bbfeb4770bc471ceffe64d0ead5 Mon Sep 17 00:00:00 2001 From: jamesagnew Date: Thu, 2 Apr 2020 20:30:19 -0400 Subject: [PATCH] Work on subscription cleanup --- .../ca/uhn/fhir/interceptor/api/Pointcut.java | 60 +- .../ca/uhn/fhir/cli/RunServerCommand.java | 3 +- .../ca/uhn/fhir/jpa/demo/CommonConfig.java | 2 +- .../ca/uhn/fhir/jpa/demo/ContextHolder.java | 2 +- .../uhn/fhir/jpa/demo/FhirServerConfig.java | 2 +- .../fhir/jpa/demo/FhirServerConfigDstu3.java | 3 - .../uhn/fhir/jpa/demo/FhirServerConfigR4.java | 2 - .../ca/uhn/fhir/jpa/demo/JpaServerDemo.java | 14 +- .../docs/interceptor/MyTestInterceptor.java | 4 +- hapi-fhir-jacoco/pom.xml | 5 + hapi-fhir-jpaserver-api/pom.xml | 182 ++ .../uhn/fhir/jpa/api/config}/DaoConfig.java | 9 +- .../ca/uhn/fhir/jpa/api}/dao/DaoRegistry.java | 4 +- .../java/ca/uhn/fhir/jpa/api}/dao/IDao.java | 14 +- .../fhir/jpa/api}/dao/IFhirResourceDao.java | 13 +- .../api}/dao/IFhirResourceDaoCodeSystem.java | 2 +- .../api}/dao/IFhirResourceDaoComposition.java | 2 +- .../api}/dao/IFhirResourceDaoConceptMap.java | 6 +- .../api}/dao/IFhirResourceDaoEncounter.java | 2 +- .../dao/IFhirResourceDaoMessageHeader.java | 2 +- .../jpa/api}/dao/IFhirResourceDaoPatient.java | 2 +- .../dao/IFhirResourceDaoSearchParameter.java | 2 +- .../IFhirResourceDaoStructureDefinition.java | 2 +- .../dao/IFhirResourceDaoSubscription.java | 2 +- .../api}/dao/IFhirResourceDaoValueSet.java | 2 +- .../uhn/fhir/jpa/api}/dao/IFhirSystemDao.java | 6 +- .../ca/uhn/fhir/jpa/api}/dao/IJpaDao.java | 2 +- .../dao/MetadataKeyCurrentlyReindexing.java | 3 +- .../jpa/api}/dao/MetadataKeyResourcePid.java | 6 +- .../fhir/jpa/api/model}/DaoMethodOutcome.java | 3 +- .../fhir/jpa/api/model}/DeleteConflict.java | 2 +- .../jpa/api/model}/DeleteConflictList.java | 3 +- .../jpa/api/model}/DeleteMethodOutcome.java | 2 +- .../fhir/jpa/api/model}/ExpungeOptions.java | 2 +- .../fhir/jpa/api/model}/ExpungeOutcome.java | 2 +- .../fhir/jpa/api/model}/TranslationMatch.java | 2 +- .../fhir/jpa/api/model}/TranslationQuery.java | 2 +- .../jpa/api/model}/TranslationRequest.java | 2 +- .../jpa/api/model}/TranslationResult.java | 2 +- .../fhir/jpa/api/model}/WarmCacheEntry.java | 2 +- .../jpa/api/svc}/ISearchCoordinatorSvc.java | 4 +- .../src/main/resources/.keep-jpaserver-api | 0 hapi-fhir-jpaserver-api/src/test/java/.keep | 0 .../src/test/resources/.keep | 0 .../jpa/binstore/BinaryAccessProvider.java | 15 +- .../fhir/jpa/bulk/BulkDataExportSvcImpl.java | 16 +- .../ca/uhn/fhir/jpa/config/BaseConfig.java | 72 +- .../uhn/fhir/jpa/config/BaseDstu2Config.java | 5 +- .../jpa/config/WebsocketDispatcherConfig.java | 2 +- .../jpa/config/dstu3/BaseDstu3Config.java | 9 +- .../uhn/fhir/jpa/config/r4/BaseR4Config.java | 9 +- .../uhn/fhir/jpa/config/r5/BaseR5Config.java | 8 +- .../ca/uhn/fhir/jpa/dao/BaseHapiFhirDao.java | 30 +- .../fhir/jpa/dao/BaseHapiFhirResourceDao.java | 11 +- .../fhir/jpa/dao/BaseHapiFhirSystemDao.java | 5 +- .../ca/uhn/fhir/jpa/dao/BaseStorageDao.java | 2 + .../jpa/dao/BaseTransactionProcessor.java | 16 +- .../fhir/jpa/dao/DaoSearchParamProvider.java | 2 +- .../dao/FhirResourceDaoCompositionDstu2.java | 2 +- .../dao/FhirResourceDaoEncounterDstu2.java | 13 +- .../FhirResourceDaoMessageHeaderDstu2.java | 2 +- .../jpa/dao/FhirResourceDaoPatientDstu2.java | 22 +- .../FhirResourceDaoSearchParameterDstu2.java | 2 + ...irResourceDaoStructureDefinitionDstu2.java | 1 + .../dao/FhirResourceDaoSubscriptionDstu2.java | 3 +- .../jpa/dao/FhirResourceDaoValueSetDstu2.java | 8 +- .../uhn/fhir/jpa/dao/FhirSystemDaoDstu2.java | 12 +- .../fhir/jpa/dao/FulltextSearchSvcImpl.java | 1 + ...JpaPersistedResourceValidationSupport.java | 1 + .../fhir/jpa/dao/MatchResourceUrlService.java | 2 + .../ca/uhn/fhir/jpa/dao/SearchBuilder.java | 2 + .../fhir/jpa/dao/SearchBuilderFactory.java | 1 + .../fhir/jpa/dao/TransactionProcessor.java | 1 + .../dstu3/FhirResourceDaoCodeSystemDstu3.java | 2 +- .../FhirResourceDaoCompositionDstu3.java | 2 +- .../dstu3/FhirResourceDaoConceptMapDstu3.java | 8 +- .../dstu3/FhirResourceDaoEncounterDstu3.java | 16 +- .../FhirResourceDaoMessageHeaderDstu3.java | 2 +- .../dstu3/FhirResourceDaoPatientDstu3.java | 23 +- .../FhirResourceDaoSearchParameterDstu3.java | 8 +- ...irResourceDaoStructureDefinitionDstu3.java | 2 +- .../FhirResourceDaoSubscriptionDstu3.java | 2 +- .../dstu3/FhirResourceDaoValueSetDstu3.java | 12 +- .../jpa/dao/expunge/ExpungeOperation.java | 4 +- .../fhir/jpa/dao/expunge/ExpungeService.java | 7 +- .../fhir/jpa/dao/expunge/PartitionRunner.java | 2 +- .../dao/expunge/ResourceExpungeService.java | 4 +- .../dao/index/DaoResourceLinkResolver.java | 6 +- .../dao/index/DaoSearchParamSynchronizer.java | 2 +- .../fhir/jpa/dao/index/IdHelperService.java | 2 +- ...rchParamWithInlineReferencesExtractor.java | 3 +- .../dao/predicate/BasePredicateBuilder.java | 12 +- .../predicate/PredicateBuilderReference.java | 6 +- .../dao/predicate/PredicateBuilderString.java | 2 +- .../dao/r4/FhirResourceDaoCodeSystemR4.java | 2 +- .../dao/r4/FhirResourceDaoCompositionR4.java | 2 +- .../dao/r4/FhirResourceDaoConceptMapR4.java | 19 +- .../dao/r4/FhirResourceDaoEncounterR4.java | 16 +- .../r4/FhirResourceDaoMessageHeaderR4.java | 2 +- .../jpa/dao/r4/FhirResourceDaoPatientR4.java | 23 +- .../r4/FhirResourceDaoSearchParameterR4.java | 4 +- .../FhirResourceDaoStructureDefinitionR4.java | 2 +- .../dao/r4/FhirResourceDaoSubscriptionR4.java | 2 +- .../jpa/dao/r4/FhirResourceDaoValueSetR4.java | 4 +- .../dao/r5/FhirResourceDaoCodeSystemR5.java | 2 +- .../dao/r5/FhirResourceDaoCompositionR5.java | 2 +- .../dao/r5/FhirResourceDaoConceptMapR5.java | 15 +- .../dao/r5/FhirResourceDaoEncounterR5.java | 2 +- .../r5/FhirResourceDaoMessageHeaderR5.java | 2 +- .../jpa/dao/r5/FhirResourceDaoPatientR5.java | 2 +- .../r5/FhirResourceDaoSearchParameterR5.java | 2 +- .../FhirResourceDaoStructureDefinitionR5.java | 2 +- .../dao/r5/FhirResourceDaoSubscriptionR5.java | 2 +- .../jpa/dao/r5/FhirResourceDaoValueSetR5.java | 4 +- .../jpa/delete/DeleteConflictService.java | 5 +- .../fhir/jpa/graphql/JpaStorageServices.java | 10 +- .../CascadingDeleteInterceptor.java | 14 +- .../fhir/jpa/provider/BaseJpaProvider.java | 6 +- .../jpa/provider/BaseJpaResourceProvider.java | 17 +- ...seJpaResourceProviderCompositionDstu2.java | 3 +- ...BaseJpaResourceProviderEncounterDstu2.java | 31 +- .../BaseJpaResourceProviderPatientDstu2.java | 34 +- .../BaseJpaResourceProviderValueSetDstu2.java | 13 +- .../jpa/provider/BaseJpaSystemProvider.java | 6 +- .../provider/JpaConformanceProviderDstu2.java | 12 +- .../provider/JpaResourceProviderDstu2.java | 19 +- .../jpa/provider/JpaSystemProviderDstu2.java | 10 +- .../SubscriptionTriggeringProvider.java | 12 +- ...aseJpaResourceProviderCodeSystemDstu3.java | 11 +- ...seJpaResourceProviderCompositionDstu3.java | 8 +- ...aseJpaResourceProviderConceptMapDstu3.java | 6 +- ...BaseJpaResourceProviderEncounterDstu3.java | 24 +- .../BaseJpaResourceProviderPatientDstu3.java | 6 +- ...ourceProviderStructureDefinitionDstu3.java | 4 +- .../BaseJpaResourceProviderValueSetDstu3.java | 5 +- .../dstu3/JpaConformanceProviderDstu3.java | 21 +- .../dstu3/JpaResourceProviderDstu3.java | 2 +- .../dstu3/JpaSystemProviderDstu3.java | 2 +- .../BaseJpaResourceProviderCodeSystemR4.java | 11 +- .../BaseJpaResourceProviderCompositionR4.java | 8 +- .../BaseJpaResourceProviderConceptMapR4.java | 16 +- .../BaseJpaResourceProviderEncounterR4.java | 24 +- .../r4/BaseJpaResourceProviderPatientR4.java | 6 +- ...ResourceProviderStructureDefinitionR4.java | 4 +- .../r4/BaseJpaResourceProviderValueSetR4.java | 5 +- .../provider/r4/JpaConformanceProviderR4.java | 27 +- .../provider/r4/JpaResourceProviderR4.java | 20 +- .../jpa/provider/r4/JpaSystemProviderR4.java | 18 +- .../BaseJpaResourceProviderCodeSystemR5.java | 11 +- .../BaseJpaResourceProviderCompositionR5.java | 8 +- .../BaseJpaResourceProviderConceptMapR5.java | 16 +- .../BaseJpaResourceProviderEncounterR5.java | 2 +- .../r5/BaseJpaResourceProviderPatientR5.java | 2 +- ...ResourceProviderStructureDefinitionR5.java | 2 +- .../r5/BaseJpaResourceProviderValueSetR5.java | 5 +- .../provider/r5/JpaConformanceProviderR5.java | 21 +- .../provider/r5/JpaResourceProviderR5.java | 22 +- .../jpa/provider/r5/JpaSystemProviderR5.java | 16 +- .../search/DatabaseBackedPagingProvider.java | 9 +- .../search/PersistedJpaBundleProvider.java | 95 +- .../PersistedJpaBundleProviderFactory.java | 23 + ...istedJpaSearchFirstPageBundleProvider.java | 18 +- .../jpa/search/SearchCoordinatorSvcImpl.java | 69 +- .../search/StaleSearchDeletingSvcImpl.java | 2 +- .../cache/DatabaseSearchCacheSvcImpl.java | 2 +- .../reindex/ResourceReindexingSvcImpl.java | 14 +- .../jpa/search/warm/CacheWarmingSvcImpl.java | 14 +- .../jpa/sp/SearchParamPresenceSvcImpl.java | 2 +- .../fhir/jpa/term/BaseTermReadSvcImpl.java | 20 +- .../term/TermCodeSystemStorageSvcImpl.java | 2 +- .../jpa/term/TermDeferredStorageSvcImpl.java | 2 +- .../uhn/fhir/jpa/term/TermReadSvcDstu2.java | 4 +- .../uhn/fhir/jpa/term/TermReadSvcDstu3.java | 6 +- .../ca/uhn/fhir/jpa/term/TermReadSvcR4.java | 5 +- .../ca/uhn/fhir/jpa/term/TermReadSvcR5.java | 6 +- .../jpa/term/TermVersionAdapterSvcDstu3.java | 4 +- .../jpa/term/TermVersionAdapterSvcR4.java | 5 +- .../jpa/term/TermVersionAdapterSvcR5.java | 2 +- .../uhn/fhir/jpa/term/api/ITermReadSvc.java | 8 +- ...quireManualActivationInterceptorDstu2.java | 2 +- ...quireManualActivationInterceptorDstu3.java | 2 +- ...sRequireManualActivationInterceptorR4.java | 2 +- ...scriptionDeliveringRestHookSubscriber.java | 2 +- .../uhn/fhir/jpa/config/TestDstu3Config.java | 4 +- .../ca/uhn/fhir/jpa/config/TestJPAConfig.java | 18 +- .../java/ca/uhn/fhir/jpa/dao/BaseJpaTest.java | 6 +- .../ca/uhn/fhir/jpa/dao/DaoConfigTest.java | 1 + .../uhn/fhir/jpa/dao/SearchBuilderTest.java | 2 +- .../fhir/jpa/dao/dstu2/BaseJpaDstu2Test.java | 13 +- ...ceDaoDstu2SearchCustomSearchParamTest.java | 2 +- .../dao/dstu2/FhirResourceDaoDstu2Test.java | 2 +- .../FhirResourceDaoDstu2ValidateTest.java | 3 +- .../FhirResourceDaoValueSetDstu2Test.java | 18 +- .../fhir/jpa/dao/dstu3/BaseJpaDstu3Test.java | 14 +- .../FhirResourceDaoDocumentDstu3Test.java | 2 +- .../FhirResourceDaoDstu3ConceptMapTest.java | 6 +- ...ResourceDaoDstu3ExternalReferenceTest.java | 2 +- ...ourceDaoDstu3ReferentialIntegrityTest.java | 2 +- ...ceDaoDstu3SearchCustomSearchParamTest.java | 3 +- .../FhirResourceDaoDstu3SearchNoFtTest.java | 5 +- .../dstu3/FhirResourceDaoDstu3SourceTest.java | 2 +- .../FhirResourceDaoDstu3TerminologyTest.java | 2 +- .../dao/dstu3/FhirResourceDaoDstu3Test.java | 54 +- .../dstu3/FhirResourceDaoDstu3UpdateTest.java | 2 +- .../FhirResourceDaoDstu3ValueSetTest.java | 18 +- .../jpa/dao/dstu3/FhirSystemDaoDstu3Test.java | 6 +- .../fhir/jpa/dao/expunge/ExpungeHookTest.java | 14 +- .../jpa/dao/expunge/PartitionRunnerTest.java | 2 +- .../ca/uhn/fhir/jpa/dao/r4/BaseJpaR4Test.java | 19 +- .../jpa/dao/r4/ConsentEventsDaoR4Test.java | 2 +- ...irResourceDaoCreatePlaceholdersR4Test.java | 2 +- .../dao/r4/FhirResourceDaoDocumentR4Test.java | 2 +- .../r4/FhirResourceDaoR4CacheWarmingTest.java | 4 +- .../r4/FhirResourceDaoR4ConceptMapTest.java | 10 +- .../dao/r4/FhirResourceDaoR4CreateTest.java | 4 +- .../dao/r4/FhirResourceDaoR4DeleteTest.java | 2 +- ...hirResourceDaoR4ExternalReferenceTest.java | 2 +- .../dao/r4/FhirResourceDaoR4FilterTest.java | 7 +- .../r4/FhirResourceDaoR4InterceptorTest.java | 6 +- ...rResourceDaoR4InvalidSubscriptionTest.java | 15 +- .../r4/FhirResourceDaoR4QueryCountTest.java | 2 +- ...ResourceDaoR4ReferentialIntegrityTest.java | 2 +- ...ourceDaoR4SearchCustomSearchParamTest.java | 3 +- .../FhirResourceDaoR4SearchMissingTest.java | 2 +- .../r4/FhirResourceDaoR4SearchNoFtTest.java | 2 +- .../FhirResourceDaoR4SearchNoHashesTest.java | 2 +- .../FhirResourceDaoR4SearchOptimizedTest.java | 2 +- ...FhirResourceDaoR4SearchPageExpiryTest.java | 2 +- ...ourceDaoR4SearchWithElasticSearchTest.java | 18 +- ...urceDaoR4SearchWithLuceneDisabledTest.java | 10 +- .../dao/r4/FhirResourceDaoR4SourceTest.java | 2 +- .../r4/FhirResourceDaoR4TerminologyTest.java | 2 +- .../jpa/dao/r4/FhirResourceDaoR4Test.java | 62 +- ...hirResourceDaoR4UniqueSearchParamTest.java | 6 +- .../dao/r4/FhirResourceDaoR4UpdateTest.java | 3 +- .../dao/r4/FhirResourceDaoR4ValidateTest.java | 2 +- .../dao/r4/FhirResourceDaoR4ValueSetTest.java | 47 +- .../FhirResourceDaoSearchParameterR4Test.java | 3 +- .../fhir/jpa/dao/r4/FhirSystemDaoR4Test.java | 2 +- .../dao/r4/SearchCoordinatorSvcImplTest.java | 13 +- .../ca/uhn/fhir/jpa/dao/r5/BaseJpaR5Test.java | 19 +- .../r5/StorageInterceptorEventsR5Test.java | 2 +- .../delete/DeleteConflictServiceR4Test.java | 3 +- .../jpa/delete/DeleteConflictServiceTest.java | 3 +- .../provider/ResourceProviderDstu2Test.java | 6 +- .../ResourceProviderExpungeDstu2Test.java | 9 +- ...temProviderTransactionSearchDstu2Test.java | 2 +- .../dstu3/BaseResourceProviderDstu3Test.java | 6 +- .../dstu3/CompositionDocumentDstu3Test.java | 2 +- .../dstu3/PatientEverythingDstu3Test.java | 2 +- .../dstu3/ResourceProviderDstu3Test.java | 2 +- .../ResourceProviderDstu3ValueSetTest.java | 4 +- .../ResourceProviderExpungeDstu3Test.java | 12 +- ...temProviderTransactionSearchDstu3Test.java | 5 +- .../r4/BaseResourceProviderR4Test.java | 42 +- .../r4/BinaryAccessProviderR4Test.java | 3 +- .../r4/BinaryStorageInterceptorR4Test.java | 5 +- .../r4/CascadingDeleteInterceptorR4Test.java | 2 +- .../r4/CompositionDocumentR4Test.java | 2 +- ...sentInterceptorResourceProviderR4Test.java | 2 +- .../jpa/provider/r4/EmptyIndexesR4Test.java | 2 +- .../fhir/jpa/provider/r4/ExpungeR4Test.java | 6 +- .../provider/r4/PatientEverythingR4Test.java | 2 +- ...sourceProviderCustomSearchParamR4Test.java | 3 +- .../r4/ResourceProviderExpungeR4Test.java | 13 +- .../r4/ResourceProviderInterceptorR4Test.java | 3 +- ...oviderOnlySomeResourcesProvidedR4Test.java | 2 +- .../r4/ResourceProviderR4CacheTest.java | 2 +- .../provider/r4/ResourceProviderR4Test.java | 2 +- .../r4/ResourceProviderR4ValueSetTest.java | 23 +- .../r4/ResourceProviderSummaryModeR4Test.java | 5 +- .../fhir/jpa/provider/r4/ServerR4Test.java | 6 +- ...SystemProviderTransactionSearchR4Test.java | 2 +- .../r5/BaseResourceProviderR5Test.java | 11 +- .../provider/r5/ResourceProviderR5Test.java | 2 +- .../r5/ResourceProviderR5ValueSetTest.java | 4 +- .../fhir/jpa/provider/r5/ServerR5Test.java | 6 +- .../PagingMultinodeProviderDstu3Test.java | 2 +- .../PersistedJpaBundleProviderTest.java | 4 +- .../search/SearchCoordinatorSvcImplTest.java | 100 +- .../r4/PagingMultinodeProviderR4Test.java | 2 +- .../ResourceReindexingSvcImplTest.java | 22 +- .../fhir/jpa/stresstest/StressTestR4Test.java | 4 +- .../subscription/BaseSubscriptionsR4Test.java | 7 +- .../subscription/BaseSubscriptionsR5Test.java | 9 +- .../FhirClientSearchParamProviderTest.java | 80 - .../FhirClientSubscriptionProviderTest.java | 62 - .../subscription/SubscriptionTestUtil.java | 30 +- ...ubscriptionValidatingInterceptorTest.java} | 14 +- .../email/EmailSubscriptionDstu3Test.java | 2 +- .../email/JavaMailEmailSenderTest.java | 4 +- .../InMemorySubscriptionMatcherR4Test.java | 7 +- ...tivatesPreExistingSubscriptionsR4Test.java | 6 +- .../resthook/RestHookTestDstu2Test.java | 2 +- .../resthook/RestHookTestDstu3Test.java | 6 +- ...rceptorRegisteredToDaoConfigDstu2Test.java | 4 +- ...rceptorRegisteredToDaoConfigDstu3Test.java | 8 +- ...nterceptorRegisteredToDaoConfigR4Test.java | 2 +- .../RestHookWithEventDefinitionR4Test.java | 2 +- .../RestHookWithInterceptorR4Test.java | 8 +- .../SubscriptionTriggeringDstu3Test.java | 32 +- .../ca/uhn/fhir/jpa/term/BaseTermR4Test.java | 3 +- .../term/TermDeferredStorageSvcImplTest.java | 2 +- ...minologyLoaderSvcIntegrationDstu3Test.java | 4 +- .../jpa/term/TerminologySvcDeltaR4Test.java | 2 +- .../jpa/term/TerminologySvcImplDstu3Test.java | 2 +- .../jpa/term/TerminologySvcImplR4Test.java | 7 +- hapi-fhir-jpaserver-example/.gitignore | 128 - hapi-fhir-jpaserver-example/Dockerfile | 4 - hapi-fhir-jpaserver-example/README.md | 74 - .../build-docker-image.sh | 5 - hapi-fhir-jpaserver-example/pom.xml | 336 --- .../uhn/fhir/jpa/demo/FhirServerConfig.java | 132 - .../fhir/jpa/demo/FhirServerConfigDstu2.java | 124 - .../uhn/fhir/jpa/demo/FhirTesterConfig.java | 56 - .../fhir/jpa/demo/FhirTesterConfigDstu2.java | 56 - .../ca/uhn/fhir/jpa/demo/JpaServerDemo.java | 155 -- .../uhn/fhir/jpa/demo/JpaServerDemoDstu2.java | 154 -- .../demo/elasticsearch/FhirServerConfig.java | 110 - .../src/main/resources/logback.xml | 16 - .../main/webapp/WEB-INF/templates/about.html | 67 - .../webapp/WEB-INF/templates/tmpl-footer.html | 5 - .../WEB-INF/templates/tmpl-home-welcome.html | 52 - .../src/main/webapp/WEB-INF/web-dstu2.xml | 106 - .../src/main/webapp/WEB-INF/web.xml | 108 - .../src/main/webapp/WEB-INF/xsd/javaee_6.xsd | 2419 ----------------- .../src/main/webapp/WEB-INF/xsd/jsp_2_2.xsd | 389 --- .../main/webapp/WEB-INF/xsd/web-app_3_0.xsd | 272 -- .../webapp/WEB-INF/xsd/web-common_3_0.xsd | 1575 ----------- .../src/main/webapp/WEB-INF/xsd/xml.xsd | 287 -- .../ca/uhn/fhir/jpa/demo/ExampleServerIT.java | 87 - .../uhn/fhir/jpa/model/util/JpaConstants.java | 3 + hapi-fhir-jpaserver-subscription/pom.xml | 13 +- .../config/SubscriptionChannelConfig.java | 25 + .../channel/queue/IQueueChannelFactory.java | 58 + .../queue/LinkedBlockingQueueChannel.java} | 8 +- .../LinkedBlockingQueueChannelFactory.java | 60 + .../ISubscriptionDeliveryChannelNamer.java | 4 +- .../SubscriptionChannelCache.java | 4 +- .../SubscriptionChannelFactory.java | 46 + .../SubscriptionChannelRegistry.java | 8 +- .../SubscriptionChannelWithHandlers.java | 4 +- .../SubscriptionDeliveryChannelNamer.java | 5 +- .../SubscriptionDeliveryHandlerFactory.java | 26 +- .../subscriber => model}/BaseJsonMessage.java | 2 +- .../BaseResourceMessage.java | 2 +- .../CanonicalSubscription.java | 2 +- .../CanonicalSubscriptionChannelType.java | 2 +- .../IResourceMessage.java | 2 +- .../ResourceDeliveryJsonMessage.java | 2 +- .../ResourceDeliveryMessage.java | 4 +- .../ResourceModifiedJsonMessage.java | 3 +- .../ResourceModifiedMessage.java | 4 +- ...ockingQueueSubscribableChannelFactory.java | 44 - .../channel/ISubscribableChannelFactory.java | 31 - .../channel/SubscriptionChannelFactory.java | 40 - .../FhirClientResourceRetriever.java | 49 - .../FhirClientSearchParamProvider.java | 70 - .../FhirClientSubscriptionProvider.java | 70 - .../StandaloneSubscriptionConfig.java | 62 - .../StandaloneSubscriptionMessageHandler.java | 104 - .../config/SubscriptionProcessorConfig.java | 136 + .../BaseSubscriptionDeliverySubscriber.java | 15 +- .../deliver}/DaoResourceRetriever.java | 11 +- .../deliver}/IResourceRetriever.java | 2 +- .../deliver}/email/EmailDetails.java | 2 +- .../deliver}/email/IEmailSender.java | 2 +- .../deliver}/email/JavaMailEmailSender.java | 2 +- ...SubscriptionDeliveringEmailSubscriber.java | 8 +- ...scriptionDeliveringRestHookSubscriber.java | 8 +- .../SubscriptionWebsocketHandler.java | 10 +- .../WebsocketConnectionValidator.java | 10 +- .../WebsocketValidationResponse.java | 4 +- ...mpositeInMemoryDaoSubscriptionMatcher.java | 10 +- .../matching}/DaoSubscriptionMatcher.java | 11 +- .../matching}/IResourceModifiedConsumer.java | 4 +- .../matching}/ISubscriptionMatcher.java | 6 +- .../InMemorySubscriptionMatcher.java | 6 +- .../SubscriptionMatchingStrategy.java | 2 +- .../SubscriptionStrategyEvaluator.java | 4 +- ...aseSubscriberForSubscriptionResources.java | 21 + .../MatchingQueueSubscriberLoader.java | 71 + .../SubscriptionActivatingSubscriber.java | 229 +- .../SubscriptionMatchingSubscriber.java | 33 +- .../SubscriptionRegisteringSubscriber.java | 84 + .../registry}/ActiveSubscription.java | 6 +- .../registry}/ActiveSubscriptionCache.java | 2 +- .../registry}/DaoSubscriptionProvider.java | 14 +- .../registry}/ISubscriptionProvider.java | 2 +- .../registry}/SubscriptionCanonicalizer.java | 15 +- .../registry}/SubscriptionConstants.java | 2 +- .../registry}/SubscriptionLoader.java | 6 +- .../registry}/SubscriptionRegistry.java | 11 +- .../config/SubscriptionSubmitterConfig.java | 31 + .../interceptor/SubmitInterceptorLoader.java | 28 +- .../SubscriptionMatcherInterceptor.java | 51 +- .../SubscriptionValidatingInterceptor.java | 144 + .../ISubscriptionTriggeringSvc.java | 2 +- .../SubscriptionTriggeringSvcImpl.java | 24 +- .../SubscriptionDebugLogInterceptor.java | 12 +- .../module/BaseSubscriptionDstu3Test.java | 83 - .../module/BaseSubscriptionTest.java | 39 - .../module/CanonicalSubscriptionTest.java | 7 +- .../module/ResourceModifiedTest.java | 1 + .../module}/SubscriptionConfig.java | 20 +- .../cache/BaseSubscriptionRegistryTest.java | 33 - .../module/cache/SubscriptionLoaderTest.java | 69 - .../cache/SubscriptionRegistrySharedTest.java | 44 - .../cache/SubscriptionRegistryTest.java | 59 - .../SubscriptionChannelRegistryTest.java | 7 +- .../MockFhirClientSearchParamProvider.java | 20 - .../MockFhirClientSubscriptionProvider.java | 20 - .../module/config/MockProvider.java | 31 - .../module/config/TestSubscriptionConfig.java | 42 - .../config/TestSubscriptionDstu3Config.java | 51 - .../InMemorySubscriptionMatcherR3Test.java | 645 ----- .../SubscriptionStrategyEvaluatorTest.java | 53 - ...kingQueueSubscribableChannelDstu3Test.java | 215 -- .../standalone/SearchParamLoaderTest.java | 51 - ...ndaloneSubscriptionMessageHandlerTest.java | 61 - .../SubscriptionLoaderFhirClientTest.java | 56 - .../ResourceDeliveryMessageTest.java | 1 + .../SubscriptionCheckingSubscriberTest.java | 119 - .../SubscriptionMatchingSubscriberTest.java | 78 - .../WebsocketConnectionValidatorTest.java | 80 +- ...aseSubscriptionDeliverySubscriberTest.java | 12 +- .../ActiveSubscriptionCacheTest.java | 10 +- .../ca/uhn/fhirtest/TestRestfulServer.java | 16 +- .../uhn/fhirtest/config/TestDstu2Config.java | 2 +- .../uhn/fhirtest/config/TestDstu3Config.java | 2 +- .../ca/uhn/fhirtest/config/TestR4Config.java | 2 +- .../ca/uhn/fhirtest/config/TestR5Config.java | 2 +- .../autoconfigure/FhirAutoConfiguration.java | 2 +- .../FhirAutoConfigurationTest.java | 2 +- .../uhn/fhir/jpa/test/FhirServerConfig.java | 17 +- .../ca/uhn/fhir/jpa/test/OverlayTestApp.java | 3 - .../fhir-jpabase-spring-test-config.xml | 4 +- .../resources/vm/jpa_spring_beans_java.vm | 3 +- pom.xml | 1 + 439 files changed, 2754 insertions(+), 10601 deletions(-) create mode 100644 hapi-fhir-jpaserver-api/pom.xml rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/config}/DaoConfig.java (99%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/DaoRegistry.java (98%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IDao.java (81%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirResourceDao.java (96%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirResourceDaoCodeSystem.java (98%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirResourceDaoComposition.java (97%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirResourceDaoConceptMap.java (87%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirResourceDaoEncounter.java (97%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirResourceDaoMessageHeader.java (96%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirResourceDaoPatient.java (98%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirResourceDaoSearchParameter.java (96%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirResourceDaoStructureDefinition.java (96%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirResourceDaoSubscription.java (96%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirResourceDaoValueSet.java (98%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IFhirSystemDao.java (94%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/IJpaDao.java (97%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/MetadataKeyCurrentlyReindexing.java (96%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api}/dao/MetadataKeyResourcePid.java (95%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/model}/DaoMethodOutcome.java (95%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/util => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/model}/DeleteConflict.java (97%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/delete => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/model}/DeleteConflictList.java (98%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/model}/DeleteMethodOutcome.java (97%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/util => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/model}/ExpungeOptions.java (98%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/util => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/model}/ExpungeOutcome.java (96%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/term => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/model}/TranslationMatch.java (98%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/term => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/model}/TranslationQuery.java (98%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/term => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/model}/TranslationRequest.java (99%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/term => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/model}/TranslationResult.java (98%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/search/warm => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/model}/WarmCacheEntry.java (98%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/search => hapi-fhir-jpaserver-api/src/main/java/ca/uhn/fhir/jpa/api/svc}/ISearchCoordinatorSvc.java (95%) rename hapi-fhir-jpaserver-example/src/test/resources/.keep_hapi-fhir-jpaserver-example => hapi-fhir-jpaserver-api/src/main/resources/.keep-jpaserver-api (100%) create mode 100644 hapi-fhir-jpaserver-api/src/test/java/.keep create mode 100644 hapi-fhir-jpaserver-api/src/test/resources/.keep create mode 100644 hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/search/PersistedJpaBundleProviderFactory.java delete mode 100644 hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/subscription/FhirClientSearchParamProviderTest.java delete mode 100644 hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/subscription/FhirClientSubscriptionProviderTest.java rename hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/subscription/{SubscriptionActivatingInterceptorTest.java => SubscriptionValidatingInterceptorTest.java} (89%) delete mode 100644 hapi-fhir-jpaserver-example/.gitignore delete mode 100644 hapi-fhir-jpaserver-example/Dockerfile delete mode 100644 hapi-fhir-jpaserver-example/README.md delete mode 100755 hapi-fhir-jpaserver-example/build-docker-image.sh delete mode 100644 hapi-fhir-jpaserver-example/pom.xml delete mode 100644 hapi-fhir-jpaserver-example/src/main/java/ca/uhn/fhir/jpa/demo/FhirServerConfig.java delete mode 100644 hapi-fhir-jpaserver-example/src/main/java/ca/uhn/fhir/jpa/demo/FhirServerConfigDstu2.java delete mode 100644 hapi-fhir-jpaserver-example/src/main/java/ca/uhn/fhir/jpa/demo/FhirTesterConfig.java delete mode 100644 hapi-fhir-jpaserver-example/src/main/java/ca/uhn/fhir/jpa/demo/FhirTesterConfigDstu2.java delete mode 100644 hapi-fhir-jpaserver-example/src/main/java/ca/uhn/fhir/jpa/demo/JpaServerDemo.java delete mode 100644 hapi-fhir-jpaserver-example/src/main/java/ca/uhn/fhir/jpa/demo/JpaServerDemoDstu2.java delete mode 100644 hapi-fhir-jpaserver-example/src/main/java/ca/uhn/fhir/jpa/demo/elasticsearch/FhirServerConfig.java delete mode 100644 hapi-fhir-jpaserver-example/src/main/resources/logback.xml delete mode 100644 hapi-fhir-jpaserver-example/src/main/webapp/WEB-INF/templates/about.html delete mode 100644 hapi-fhir-jpaserver-example/src/main/webapp/WEB-INF/templates/tmpl-footer.html delete mode 100644 hapi-fhir-jpaserver-example/src/main/webapp/WEB-INF/templates/tmpl-home-welcome.html delete mode 100644 hapi-fhir-jpaserver-example/src/main/webapp/WEB-INF/web-dstu2.xml delete mode 100644 hapi-fhir-jpaserver-example/src/main/webapp/WEB-INF/web.xml delete mode 100644 hapi-fhir-jpaserver-example/src/main/webapp/WEB-INF/xsd/javaee_6.xsd delete mode 100644 hapi-fhir-jpaserver-example/src/main/webapp/WEB-INF/xsd/jsp_2_2.xsd delete mode 100644 hapi-fhir-jpaserver-example/src/main/webapp/WEB-INF/xsd/web-app_3_0.xsd delete mode 100644 hapi-fhir-jpaserver-example/src/main/webapp/WEB-INF/xsd/web-common_3_0.xsd delete mode 100644 hapi-fhir-jpaserver-example/src/main/webapp/WEB-INF/xsd/xml.xsd delete mode 100644 hapi-fhir-jpaserver-example/src/test/java/ca/uhn/fhir/jpa/demo/ExampleServerIT.java create mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/channel/config/SubscriptionChannelConfig.java create mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/channel/queue/IQueueChannelFactory.java rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/LinkedBlockingQueueSubscribableChannel.java => channel/queue/LinkedBlockingQueueChannel.java} (91%) create mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/channel/queue/LinkedBlockingQueueChannelFactory.java rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/channel => channel/subscription}/ISubscriptionDeliveryChannelNamer.java (86%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/channel => channel/subscription}/SubscriptionChannelCache.java (93%) create mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/channel/subscription/SubscriptionChannelFactory.java rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/channel => channel/subscription}/SubscriptionChannelRegistry.java (94%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/channel => channel/subscription}/SubscriptionChannelWithHandlers.java (95%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/channel => channel/subscription}/SubscriptionDeliveryChannelNamer.java (90%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/channel => channel/subscription}/SubscriptionDeliveryHandlerFactory.java (66%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => model}/BaseJsonMessage.java (95%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => model}/BaseResourceMessage.java (98%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module => model}/CanonicalSubscription.java (99%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module => model}/CanonicalSubscriptionChannelType.java (99%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => model}/IResourceMessage.java (92%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => model}/ResourceDeliveryJsonMessage.java (96%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => model}/ResourceDeliveryMessage.java (95%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => model}/ResourceModifiedJsonMessage.java (92%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module => model}/ResourceModifiedMessage.java (96%) delete mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/module/cache/LinkedBlockingQueueSubscribableChannelFactory.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/module/channel/ISubscribableChannelFactory.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/module/channel/SubscriptionChannelFactory.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/module/standalone/FhirClientResourceRetriever.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/module/standalone/FhirClientSearchParamProvider.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/module/standalone/FhirClientSubscriptionProvider.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/module/standalone/StandaloneSubscriptionConfig.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/module/standalone/StandaloneSubscriptionMessageHandler.java create mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/process/config/SubscriptionProcessorConfig.java rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => process/deliver}/BaseSubscriptionDeliverySubscriber.java (86%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/subscription => hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/process/deliver}/DaoResourceRetriever.java (83%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => process/deliver}/IResourceRetriever.java (93%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => process/deliver}/email/EmailDetails.java (96%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => process/deliver}/email/IEmailSender.java (92%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => process/deliver}/email/JavaMailEmailSender.java (98%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => process/deliver}/email/SubscriptionDeliveringEmailSubscriber.java (92%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => process/deliver/resthook}/SubscriptionDeliveringRestHookSubscriber.java (95%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => process/deliver}/websocket/SubscriptionWebsocketHandler.java (94%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => process/deliver}/websocket/WebsocketConnectionValidator.java (85%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => process/deliver}/websocket/WebsocketValidationResponse.java (92%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/subscription/dbmatcher => hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/process/matcher/matching}/CompositeInMemoryDaoSubscriptionMatcher.java (85%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/subscription/dbmatcher => hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/process/matcher/matching}/DaoSubscriptionMatcher.java (90%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/subscription => hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/process/matcher/matching}/IResourceModifiedConsumer.java (85%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/matcher => process/matcher/matching}/ISubscriptionMatcher.java (81%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/matcher => process/matcher/matching}/InMemorySubscriptionMatcher.java (90%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/matcher => process/matcher/matching}/SubscriptionMatchingStrategy.java (94%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/matcher => process/matcher/matching}/SubscriptionStrategyEvaluator.java (92%) create mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/process/matcher/subscriber/BaseSubscriberForSubscriptionResources.java create mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/process/matcher/subscriber/MatchingQueueSubscriberLoader.java rename hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/subscription/SubscriptionActivatingInterceptor.java => hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/process/matcher/subscriber/SubscriptionActivatingSubscriber.java (51%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module => process/matcher}/subscriber/SubscriptionMatchingSubscriber.java (89%) create mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/process/matcher/subscriber/SubscriptionRegisteringSubscriber.java rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/cache => process/registry}/ActiveSubscription.java (90%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/cache => process/registry}/ActiveSubscriptionCache.java (97%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/subscription/dbcache => hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/process/registry}/DaoSubscriptionProvider.java (77%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/cache => process/registry}/ISubscriptionProvider.java (94%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/cache => process/registry}/SubscriptionCanonicalizer.java (97%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/cache => process/registry}/SubscriptionConstants.java (96%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/cache => process/registry}/SubscriptionLoader.java (97%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/cache => process/registry}/SubscriptionRegistry.java (94%) create mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/submit/config/SubscriptionSubmitterConfig.java rename hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/subscription/SubscriptionInterceptorLoader.java => hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/submit/interceptor/SubmitInterceptorLoader.java (77%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/subscription => hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/submit/interceptor}/SubscriptionMatcherInterceptor.java (74%) create mode 100644 hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/submit/interceptor/SubscriptionValidatingInterceptor.java rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/subscription => hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/triggering}/ISubscriptionTriggeringSvc.java (95%) rename {hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/subscription => hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/triggering}/SubscriptionTriggeringSvcImpl.java (96%) rename hapi-fhir-jpaserver-subscription/src/main/java/ca/uhn/fhir/jpa/subscription/{module/interceptor => util}/SubscriptionDebugLogInterceptor.java (94%) delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/BaseSubscriptionDstu3Test.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/BaseSubscriptionTest.java rename hapi-fhir-jpaserver-subscription/src/{main/java/ca/uhn/fhir/jpa/subscription/module/config => test/java/ca/uhn/fhir/jpa/subscription/module}/SubscriptionConfig.java (69%) delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/cache/BaseSubscriptionRegistryTest.java delete mode 100755 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/cache/SubscriptionLoaderTest.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/cache/SubscriptionRegistrySharedTest.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/cache/SubscriptionRegistryTest.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/config/MockFhirClientSearchParamProvider.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/config/MockFhirClientSubscriptionProvider.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/config/MockProvider.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/config/TestSubscriptionConfig.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/config/TestSubscriptionDstu3Config.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/matcher/InMemorySubscriptionMatcherR3Test.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/matcher/SubscriptionStrategyEvaluatorTest.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/standalone/BaseBlockingQueueSubscribableChannelDstu3Test.java delete mode 100755 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/standalone/SearchParamLoaderTest.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/standalone/StandaloneSubscriptionMessageHandlerTest.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/standalone/SubscriptionLoaderFhirClientTest.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/subscriber/SubscriptionCheckingSubscriberTest.java delete mode 100644 hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/module/subscriber/SubscriptionMatchingSubscriberTest.java rename hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/{module/subscriber => process/deliver}/BaseSubscriptionDeliverySubscriberTest.java (92%) rename hapi-fhir-jpaserver-subscription/src/test/java/ca/uhn/fhir/jpa/subscription/{module/cache => process/registry}/ActiveSubscriptionCacheTest.java (91%) diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/interceptor/api/Pointcut.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/interceptor/api/Pointcut.java index dbcd4fea92f..7b7520179d7 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/interceptor/api/Pointcut.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/interceptor/api/Pointcut.java @@ -594,7 +594,7 @@ public enum Pointcut { *

* Hooks may accept the following parameters: *

*

*

@@ -603,7 +603,7 @@ public enum Pointcut { * returns false, subscription processing will not proceed for the given resource; *

*/ - SUBSCRIPTION_RESOURCE_MODIFIED(boolean.class, "ca.uhn.fhir.jpa.subscription.module.ResourceModifiedMessage"), + SUBSCRIPTION_RESOURCE_MODIFIED(boolean.class, "ca.uhn.fhir.jpa.subscription.model.ResourceModifiedMessage"), /** @@ -617,8 +617,8 @@ public enum Pointcut { *

* Hooks may accept the following parameters: * *

@@ -627,7 +627,7 @@ public enum Pointcut { * returns false, delivery will be aborted. *

*/ - SUBSCRIPTION_RESOURCE_MATCHED(boolean.class, "ca.uhn.fhir.jpa.subscription.module.CanonicalSubscription", "ca.uhn.fhir.jpa.subscription.module.subscriber.ResourceDeliveryMessage", "ca.uhn.fhir.jpa.searchparam.matcher.InMemoryMatchResult"), + SUBSCRIPTION_RESOURCE_MATCHED(boolean.class, "ca.uhn.fhir.jpa.subscription.model.CanonicalSubscription", "ca.uhn.fhir.jpa.subscription.model.ResourceDeliveryMessage", "ca.uhn.fhir.jpa.searchparam.matcher.InMemoryMatchResult"), /** * Subscription Hook: @@ -636,14 +636,14 @@ public enum Pointcut { *

* Hooks may accept the following parameters: *

*

*

* Hooks should return void. *

*/ - SUBSCRIPTION_RESOURCE_DID_NOT_MATCH_ANY_SUBSCRIPTIONS(void.class, "ca.uhn.fhir.jpa.subscription.module.ResourceModifiedMessage"), + SUBSCRIPTION_RESOURCE_DID_NOT_MATCH_ANY_SUBSCRIPTIONS(void.class, "ca.uhn.fhir.jpa.subscription.model.ResourceModifiedMessage"), /** * Subscription Hook: @@ -656,8 +656,8 @@ public enum Pointcut { *

* Hooks may accept the following parameters: * *

* Hooks may return void or may return a boolean. If the method returns @@ -665,7 +665,7 @@ public enum Pointcut { * returns false, processing will be aborted. *

*/ - SUBSCRIPTION_BEFORE_DELIVERY(boolean.class, "ca.uhn.fhir.jpa.subscription.module.CanonicalSubscription", "ca.uhn.fhir.jpa.subscription.module.subscriber.ResourceDeliveryMessage"), + SUBSCRIPTION_BEFORE_DELIVERY(boolean.class, "ca.uhn.fhir.jpa.subscription.model.CanonicalSubscription", "ca.uhn.fhir.jpa.subscription.model.ResourceDeliveryMessage"), /** * Subscription Hook: @@ -675,14 +675,14 @@ public enum Pointcut { * Hooks may accept the following parameters: *

* *

* Hooks should return void. *

*/ - SUBSCRIPTION_AFTER_DELIVERY(void.class, "ca.uhn.fhir.jpa.subscription.module.CanonicalSubscription", "ca.uhn.fhir.jpa.subscription.module.subscriber.ResourceDeliveryMessage"), + SUBSCRIPTION_AFTER_DELIVERY(void.class, "ca.uhn.fhir.jpa.subscription.model.CanonicalSubscription", "ca.uhn.fhir.jpa.subscription.model.ResourceDeliveryMessage"), /** @@ -694,7 +694,7 @@ public enum Pointcut { *

* *

@@ -706,7 +706,7 @@ public enum Pointcut { * taken for the delivery. *

*/ - SUBSCRIPTION_AFTER_DELIVERY_FAILED(boolean.class, "ca.uhn.fhir.jpa.subscription.module.subscriber.ResourceDeliveryMessage", "java.lang.Exception"), + SUBSCRIPTION_AFTER_DELIVERY_FAILED(boolean.class, "ca.uhn.fhir.jpa.subscription.model.ResourceDeliveryMessage", "java.lang.Exception"), /** * Subscription Hook: @@ -717,14 +717,14 @@ public enum Pointcut { *

* Hooks may accept the following parameters: * *

* Hooks should return void. *

*/ - SUBSCRIPTION_AFTER_REST_HOOK_DELIVERY(void.class, "ca.uhn.fhir.jpa.subscription.module.CanonicalSubscription", "ca.uhn.fhir.jpa.subscription.module.subscriber.ResourceDeliveryMessage"), + SUBSCRIPTION_AFTER_REST_HOOK_DELIVERY(void.class, "ca.uhn.fhir.jpa.subscription.model.CanonicalSubscription", "ca.uhn.fhir.jpa.subscription.model.ResourceDeliveryMessage"), /** * Subscription Hook: @@ -736,8 +736,8 @@ public enum Pointcut { *

* Hooks may accept the following parameters: * *

* Hooks may return void or may return a boolean. If the method returns @@ -745,7 +745,7 @@ public enum Pointcut { * returns false, processing will be aborted. *

*/ - SUBSCRIPTION_BEFORE_REST_HOOK_DELIVERY(boolean.class, "ca.uhn.fhir.jpa.subscription.module.CanonicalSubscription", "ca.uhn.fhir.jpa.subscription.module.subscriber.ResourceDeliveryMessage"), + SUBSCRIPTION_BEFORE_REST_HOOK_DELIVERY(boolean.class, "ca.uhn.fhir.jpa.subscription.model.CanonicalSubscription", "ca.uhn.fhir.jpa.subscription.model.ResourceDeliveryMessage"), /** * Subscription Hook: @@ -755,7 +755,7 @@ public enum Pointcut { *

* Hooks may accept the following parameters: *

*

*

@@ -764,7 +764,7 @@ public enum Pointcut { * returns false, processing will be aborted. *

*/ - SUBSCRIPTION_BEFORE_PERSISTED_RESOURCE_CHECKED(boolean.class, "ca.uhn.fhir.jpa.subscription.module.ResourceModifiedMessage"), + SUBSCRIPTION_BEFORE_PERSISTED_RESOURCE_CHECKED(boolean.class, "ca.uhn.fhir.jpa.subscription.model.ResourceModifiedMessage"), /** @@ -775,14 +775,14 @@ public enum Pointcut { *

* Hooks may accept the following parameters: *

*

*

* Hooks should return void. *

*/ - SUBSCRIPTION_AFTER_PERSISTED_RESOURCE_CHECKED(void.class, "ca.uhn.fhir.jpa.subscription.module.ResourceModifiedMessage"), + SUBSCRIPTION_AFTER_PERSISTED_RESOURCE_CHECKED(void.class, "ca.uhn.fhir.jpa.subscription.model.ResourceModifiedMessage"), /** @@ -796,13 +796,13 @@ public enum Pointcut { *

* Hooks may accept the following parameters: * *

* Hooks should return void. *

*/ - SUBSCRIPTION_AFTER_ACTIVE_SUBSCRIPTION_REGISTERED(void.class, "ca.uhn.fhir.jpa.subscription.module.CanonicalSubscription"), + SUBSCRIPTION_AFTER_ACTIVE_SUBSCRIPTION_REGISTERED(void.class, "ca.uhn.fhir.jpa.subscription.model.CanonicalSubscription"), /** @@ -847,7 +847,7 @@ public enum Pointcut { void.class, "ca.uhn.fhir.rest.api.server.RequestDetails", "ca.uhn.fhir.rest.server.servlet.ServletRequestDetails", - "ca.uhn.fhir.jpa.delete.DeleteConflictList", + "ca.uhn.fhir.jpa.api.model.DeleteConflictList", "org.hl7.fhir.instance.model.api.IBaseResource" ), @@ -1254,7 +1254,7 @@ public enum Pointcut { *

* Hooks may accept the following parameters: *