Bump HAPI to release 6.6.0 (#539)

* Start tracking 6.5

* Use JpaStorageSettings and StorageSettings

* Bump parent pom version + add deps for jaxb

* Bump HAPI

* Fix Subscription/Topic resource creation

* fix subscription topic beans

* Change to rel_6_6 hapi-fhir SNAPSHOT

* Fix emailSender config

* Split method calls by line.

* Merge pull request #524 from hapifhir/do-20230509-smoke-test-ci

Create smoke-tests.yml

* Bump core to release 6.6.0

---------

Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>
Co-authored-by: Kevin Dougan SmileCDR <72025369+KevinDougan-SmileCDR@users.noreply.github.com>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
Co-authored-by: Mark Iantorno <markiantorno@gmail.com>
This commit is contained in:
dotasek
2023-05-29 14:33:45 -04:00
committed by GitHub
parent eb65ec68cc
commit 53a958ac66
7 changed files with 137 additions and 91 deletions

View File

@@ -37,7 +37,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
"spring.datasource.url=jdbc:h2:mem:dbr5",
"hapi.fhir.fhir_version=r5",
"hapi.fhir.subscription.websocket_enabled=true",
"hapi.fhir.subscription.websocket_enabled=true",
"hapi.fhir.subscription.websocket_enabled=true"
})
public class ExampleServerR5IT {
@@ -45,7 +45,10 @@ public class ExampleServerR5IT {
private IGenericClient ourClient;
private FhirContext ourCtx;
@LocalServerPort
public static final String SUBSCRIPTION_TOPIC_TEST_URL = "http://example.com/topic/test";
@LocalServerPort
private int port;
@@ -64,32 +67,62 @@ public class ExampleServerR5IT {
@Test
public void testWebsocketSubscription() throws Exception {
String endpoint = "ws://localhost:" + port + "/websocket";
/*
* Create topic (will be contained in subscription)
* Create topic
*/
SubscriptionTopic topic = new SubscriptionTopic();
topic.setId("#1");
topic.getResourceTriggerFirstRep().getQueryCriteria().setCurrent("Observation?status=final");
/*
topic.setUrl(SUBSCRIPTION_TOPIC_TEST_URL);
topic.setStatus(Enumerations.PublicationStatus.ACTIVE);
SubscriptionTopic.SubscriptionTopicResourceTriggerComponent trigger = topic.addResourceTrigger();
trigger.setResource("Observation");
trigger.addSupportedInteraction(SubscriptionTopic.InteractionTrigger.CREATE);
trigger.addSupportedInteraction(SubscriptionTopic.InteractionTrigger.UPDATE);
ourClient.create().resource(topic).execute();
waitForSize(1, () -> ourClient
.search()
.forResource(SubscriptionTopic.class)
.where(Subscription.STATUS.exactly().code("active"))
.cacheControl(
new CacheControlDirective()
.setNoCache(true))
.returnBundle(Bundle.class)
.execute()
.getEntry()
.size());
/*
* Create subscription
*/
Subscription subscription = new Subscription();
subscription.getContained().add(topic);
subscription.setTopic("#1");
subscription.setTopic(SUBSCRIPTION_TOPIC_TEST_URL);
subscription.setReason("Monitor new neonatal function (note, age will be determined by the monitor)");
subscription.setStatus(Enumerations.SubscriptionStatusCodes.REQUESTED);
subscription.getChannelType()
.setSystem("http://terminology.hl7.org/CodeSystem/subscription-channel-type")
.setCode("websocket");
subscription.setContentType("application/json");
subscription.setContentType("application/fhir+json");
subscription.setEndpoint(endpoint);
MethodOutcome methodOutcome = ourClient.create().resource(subscription).execute();
IIdType mySubscriptionId = methodOutcome.getId();
// Wait for the subscription to be activated
waitForSize(1, () -> ourClient.search().forResource(Subscription.class).where(Subscription.STATUS.exactly().code("active")).cacheControl(new CacheControlDirective().setNoCache(true)).returnBundle(Bundle.class).execute().getEntry().size());
waitForSize(1, () -> ourClient
.search()
.forResource(Subscription.class)
.where(Subscription.STATUS.exactly().code("active"))
.cacheControl(
new CacheControlDirective()
.setNoCache(true))
.returnBundle(Bundle.class)
.execute()
.getEntry()
.size());
/*
* Attach websocket
@@ -99,8 +132,9 @@ public class ExampleServerR5IT {
SocketImplementation mySocketImplementation = new SocketImplementation(mySubscriptionId.getIdPart(), EncodingEnum.JSON);
myWebSocketClient.start();
URI echoUri = new URI("ws://localhost:" + port + "/websocket");
ClientUpgradeRequest request = new ClientUpgradeRequest();
URI echoUri = new URI(endpoint);
ClientUpgradeRequest request = new ClientUpgradeRequest();
ourLog.info("Connecting to : {}", echoUri);
Future<Session> connection = myWebSocketClient.connect(mySocketImplementation, echoUri, request);
Session session = connection.get(2, TimeUnit.SECONDS);