Merge branch 'subscription_cleanup' of github.com:jamesagnew/hapi-fhir into subscription_cleanup
This commit is contained in:
commit
e10d47ecc5
|
@ -177,10 +177,13 @@ public class SubscriptionActivatingSubscriber {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerSubscriptionUnlessAlreadyRegistered(IBaseResource theSubscription) {
|
private void registerSubscriptionUnlessAlreadyRegistered(IBaseResource theSubscription) {
|
||||||
if (!mySubscriptionInterceptor.hasSubscription(theSubscription.getIdElement())) {
|
if (mySubscriptionInterceptor.hasSubscription(theSubscription.getIdElement())) {
|
||||||
|
ourLog.info("Updating already-registered active subscription {}", theSubscription.getIdElement().toUnqualified().getValue());
|
||||||
|
mySubscriptionInterceptor.unregisterSubscription(theSubscription.getIdElement());
|
||||||
|
} else {
|
||||||
ourLog.info("Registering active subscription {}", theSubscription.getIdElement().toUnqualified().getValue());
|
ourLog.info("Registering active subscription {}", theSubscription.getIdElement().toUnqualified().getValue());
|
||||||
mySubscriptionInterceptor.registerSubscription(theSubscription.getIdElement(), theSubscription);
|
|
||||||
}
|
}
|
||||||
|
mySubscriptionInterceptor.registerSubscription(theSubscription.getIdElement(), theSubscription);
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
|
|
@ -105,7 +105,7 @@ public class TestR4Config extends BaseJavaConfigR4 {
|
||||||
|
|
||||||
DataSource dataSource = ProxyDataSourceBuilder
|
DataSource dataSource = ProxyDataSourceBuilder
|
||||||
.create(retVal)
|
.create(retVal)
|
||||||
.logQueryBySlf4j(SLF4JLogLevel.INFO, "SQL")
|
// .logQueryBySlf4j(SLF4JLogLevel.INFO, "SQL")
|
||||||
.logSlowQueryBySlf4j(10, TimeUnit.SECONDS)
|
.logSlowQueryBySlf4j(10, TimeUnit.SECONDS)
|
||||||
.countQuery(new ThreadQueryCountHolder())
|
.countQuery(new ThreadQueryCountHolder())
|
||||||
.build();
|
.build();
|
||||||
|
|
|
@ -355,6 +355,53 @@ public class RestHookTestR4Test extends BaseResourceProviderR4Test {
|
||||||
Assert.assertFalse(observation2.getId().isEmpty());
|
Assert.assertFalse(observation2.getId().isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateSubscriptionToMatchLater() throws Exception {
|
||||||
|
String payload = "application/xml";
|
||||||
|
|
||||||
|
String code = "1000000050";
|
||||||
|
String criteriaBad = "Observation?code=SNOMED-CT|" + code + "111&_format=xml";
|
||||||
|
|
||||||
|
ourLog.info("** About to create non-matching subscription");
|
||||||
|
|
||||||
|
Subscription subscription2 = createSubscription(criteriaBad, payload, ourListenerServerBase);
|
||||||
|
|
||||||
|
ourLog.info("** About to send observation that wont match");
|
||||||
|
|
||||||
|
Observation observation1 = sendObservation(code, "SNOMED-CT");
|
||||||
|
|
||||||
|
// Criteria didn't match, shouldn't see any updates
|
||||||
|
waitForQueueToDrain();
|
||||||
|
Thread.sleep(1000);
|
||||||
|
assertEquals(0, ourUpdatedObservations.size());
|
||||||
|
|
||||||
|
Subscription subscriptionTemp = myClient.read().resource(Subscription.class).withId(subscription2.getId()).execute();
|
||||||
|
Assert.assertNotNull(subscriptionTemp);
|
||||||
|
String criteriaGood = "Observation?code=SNOMED-CT|" + code + "&_format=xml";
|
||||||
|
subscriptionTemp.setCriteria(criteriaGood);
|
||||||
|
ourLog.info("** About to update subscription");
|
||||||
|
myClient.update().resource(subscriptionTemp).withId(subscriptionTemp.getIdElement()).execute();
|
||||||
|
waitForQueueToDrain();
|
||||||
|
|
||||||
|
ourLog.info("** About to send Observation 2");
|
||||||
|
Observation observation2 = sendObservation(code, "SNOMED-CT");
|
||||||
|
waitForQueueToDrain();
|
||||||
|
|
||||||
|
// Should see a subscription notification this time
|
||||||
|
waitForSize(0, ourCreatedObservations);
|
||||||
|
waitForSize(1, ourUpdatedObservations);
|
||||||
|
|
||||||
|
myClient.delete().resourceById(new IdType("Subscription/" + subscription2.getId())).execute();
|
||||||
|
|
||||||
|
Observation observationTemp3 = sendObservation(code, "SNOMED-CT");
|
||||||
|
|
||||||
|
// No more matches
|
||||||
|
Thread.sleep(1000);
|
||||||
|
assertEquals(1, ourUpdatedObservations.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRestHookSubscriptionApplicationXmlJson() throws Exception {
|
public void testRestHookSubscriptionApplicationXmlJson() throws Exception {
|
||||||
String payload = "application/fhir+xml";
|
String payload = "application/fhir+xml";
|
||||||
|
|
|
@ -17,8 +17,8 @@
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<features.file>features.xml</features.file>
|
<features.file>features.xml</features.file>
|
||||||
<pax-logging-version>1.8.6</pax-logging-version>
|
<pax-logging-version>1.10.1</pax-logging-version>
|
||||||
<felix-framework-version>3.2.2</felix-framework-version>
|
<felix-framework-version>6.0.0</felix-framework-version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<pax.exam.version>4.9.1</pax.exam.version>
|
<pax.exam.version>4.12.0</pax.exam.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -489,7 +489,7 @@
|
||||||
|
|
||||||
<!-- Dependency Versions -->
|
<!-- Dependency Versions -->
|
||||||
<activation_api_version>1.2.0</activation_api_version>
|
<activation_api_version>1.2.0</activation_api_version>
|
||||||
<apache_karaf_version>4.1.4</apache_karaf_version>
|
<apache_karaf_version>4.2.0</apache_karaf_version>
|
||||||
<aries_spifly_version>1.0.10</aries_spifly_version>
|
<aries_spifly_version>1.0.10</aries_spifly_version>
|
||||||
<caffeine_version>2.6.2</caffeine_version>
|
<caffeine_version>2.6.2</caffeine_version>
|
||||||
<commons_codec_version>1.11</commons_codec_version>
|
<commons_codec_version>1.11</commons_codec_version>
|
||||||
|
|
Loading…
Reference in New Issue