You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/12/16 06:28:00 UTC
[camel] branch main updated: CAMEL-17337 - Resolve regression in FhirComponent
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 0816d95 CAMEL-17337 - Resolve regression in FhirComponent
0816d95 is described below
commit 0816d9501192ddb74d913fdc49ae73608c44e240
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Dec 16 07:27:18 2021 +0100
CAMEL-17337 - Resolve regression in FhirComponent
---
.../apache/camel/component/fhir/FhirComponent.java | 39 ++++++------
.../apache/camel/component/fhir/FhirEndpoint.java | 4 +-
.../camel/component/fhir/internal/FhirHelper.java | 70 +++++++++++-----------
.../camel/component/fhir/FhirConfigurationIT.java | 2 +-
4 files changed, 60 insertions(+), 55 deletions(-)
diff --git a/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirComponent.java b/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirComponent.java
index 114dafd..a4f9198 100644
--- a/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirComponent.java
+++ b/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirComponent.java
@@ -26,14 +26,11 @@ import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.component.AbstractApiComponent;
-/**
- * Represents the component that manages {@link FhirEndpoint}.
- */
@Component("fhir")
public class FhirComponent extends AbstractApiComponent<FhirApiName, FhirConfiguration, FhirApiCollection> {
@Metadata(label = "advanced")
- private IGenericClient client;
+ private FhirConfiguration configuration;
public FhirComponent() {
super(FhirEndpoint.class, FhirApiName.class, FhirApiCollection.getCollection());
@@ -54,21 +51,29 @@ public class FhirComponent extends AbstractApiComponent<FhirApiName, FhirConfigu
FhirConfiguration endpointConfiguration) {
endpointConfiguration.setApiName(apiName);
endpointConfiguration.setMethodName(methodName);
+
+ // ensure a client is set on the config
+ if (endpointConfiguration.getClient() == null) {
+ endpointConfiguration.setClient(createClient(endpointConfiguration));
+ }
+
return new FhirEndpoint(uri, this, apiName, methodName, endpointConfiguration);
}
- public IGenericClient getClient(FhirConfiguration endpointConfiguration) {
- final IGenericClient result;
- if (endpointConfiguration.equals(this.configuration)) {
- synchronized (this) {
- if (client == null) {
- client = FhirHelper.createClient(this.configuration, getCamelContext());
- }
- }
- result = client;
- } else {
- result = FhirHelper.createClient(endpointConfiguration, getCamelContext());
- }
- return result;
+ protected IGenericClient createClient(FhirConfiguration config) {
+ return FhirHelper.createClient(config, getCamelContext());
+ }
+
+ @Override
+ public FhirConfiguration getConfiguration() {
+ return configuration;
+ }
+
+ /**
+ * To use the shared configuration
+ */
+ @Override
+ public void setConfiguration(FhirConfiguration configuration) {
+ this.configuration = configuration;
}
}
diff --git a/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirEndpoint.java b/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirEndpoint.java
index 86a4cfb..9d7ef09 100644
--- a/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirEndpoint.java
+++ b/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirEndpoint.java
@@ -157,8 +157,8 @@ public class FhirEndpoint extends AbstractApiEndpoint<FhirApiName, FhirConfigura
}
- IGenericClient getClient() {
- return ((FhirComponent) getComponent()).getClient(configuration);
+ public IGenericClient getClient() {
+ return configuration.getClient();
}
private Map<ExtraParameters, Object> getExtraParameters(Map<String, Object> properties) {
diff --git a/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/internal/FhirHelper.java b/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/internal/FhirHelper.java
index 972f909..34f1a7a 100644
--- a/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/internal/FhirHelper.java
+++ b/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/internal/FhirHelper.java
@@ -43,24 +43,24 @@ public final class FhirHelper {
// hide utility class constructor
}
- public static IGenericClient createClient(FhirConfiguration endpointConfiguration, CamelContext camelContext) {
- if (endpointConfiguration.getClient() != null) {
- return endpointConfiguration.getClient();
+ public static IGenericClient createClient(FhirConfiguration config, CamelContext camelContext) {
+ if (config.getClient() != null) {
+ return config.getClient();
}
- FhirContext fhirContext = getFhirContext(endpointConfiguration);
- if (endpointConfiguration.isDeferModelScanning()) {
+ FhirContext fhirContext = getFhirContext(config);
+ if (config.isDeferModelScanning()) {
fhirContext.setPerformanceOptions(PerformanceOptionsEnum.DEFERRED_MODEL_SCANNING);
}
- if (endpointConfiguration.getClientFactory() != null) {
- fhirContext.setRestfulClientFactory(endpointConfiguration.getClientFactory());
+ if (config.getClientFactory() != null) {
+ fhirContext.setRestfulClientFactory(config.getClientFactory());
}
IRestfulClientFactory restfulClientFactory = fhirContext.getRestfulClientFactory();
- configureClientFactory(endpointConfiguration, restfulClientFactory, camelContext);
- IGenericClient genericClient = fhirContext.newRestfulGenericClient(endpointConfiguration.getServerUrl());
- genericClient.setPrettyPrint(endpointConfiguration.isPrettyPrint());
- EncodingEnum encoding = endpointConfiguration.getEncoding();
- SummaryEnum summary = endpointConfiguration.getSummary();
+ configureClientFactory(config, restfulClientFactory, camelContext);
+ IGenericClient genericClient = fhirContext.newRestfulGenericClient(config.getServerUrl());
+ genericClient.setPrettyPrint(config.isPrettyPrint());
+ EncodingEnum encoding = config.getEncoding();
+ SummaryEnum summary = config.getSummary();
if (encoding != null) {
genericClient.setEncoding(encoding);
@@ -68,18 +68,18 @@ public final class FhirHelper {
if (summary != null) {
genericClient.setSummary(summary);
}
- if (endpointConfiguration.isForceConformanceCheck()) {
+ if (config.isForceConformanceCheck()) {
genericClient.forceConformanceCheck();
}
- registerClientInterceptors(genericClient, endpointConfiguration);
+ registerClientInterceptors(genericClient, config);
return genericClient;
}
private static void configureClientFactory(
- FhirConfiguration endpointConfiguration, IRestfulClientFactory restfulClientFactory, CamelContext camelContext) {
- Integer connectionTimeout = endpointConfiguration.getConnectionTimeout();
- Integer socketTimeout = endpointConfiguration.getSocketTimeout();
+ FhirConfiguration config, IRestfulClientFactory restfulClientFactory, CamelContext camelContext) {
+ Integer connectionTimeout = config.getConnectionTimeout();
+ Integer socketTimeout = config.getSocketTimeout();
if (ObjectHelper.isNotEmpty(connectionTimeout)) {
restfulClientFactory.setConnectTimeout(connectionTimeout);
@@ -88,16 +88,16 @@ public final class FhirHelper {
restfulClientFactory.setSocketTimeout(socketTimeout);
}
- configureProxy(endpointConfiguration, restfulClientFactory, camelContext);
+ configureProxy(config, restfulClientFactory, camelContext);
}
private static void configureProxy(
- FhirConfiguration endpointConfiguration, IRestfulClientFactory restfulClientFactory, CamelContext camelContext) {
- ServerValidationModeEnum validationMode = endpointConfiguration.getValidationMode();
- String proxyHost = endpointConfiguration.getProxyHost();
- Integer proxyPort = endpointConfiguration.getProxyPort();
- String proxyUser = endpointConfiguration.getProxyUser();
- String proxyPassword = endpointConfiguration.getProxyPassword();
+ FhirConfiguration config, IRestfulClientFactory restfulClientFactory, CamelContext camelContext) {
+ ServerValidationModeEnum validationMode = config.getValidationMode();
+ String proxyHost = config.getProxyHost();
+ Integer proxyPort = config.getProxyPort();
+ String proxyUser = config.getProxyUser();
+ String proxyPassword = config.getProxyPassword();
String camelProxyHost = camelContext.getGlobalOption("http.proxyHost");
String camelProxyPort = camelContext.getGlobalOption("http.proxyPort");
@@ -116,21 +116,21 @@ public final class FhirHelper {
}
}
- private static void registerClientInterceptors(IGenericClient genericClient, FhirConfiguration endpointConfiguration) {
- String username = endpointConfiguration.getUsername();
- String password = endpointConfiguration.getPassword();
- String accessToken = endpointConfiguration.getAccessToken();
- String sessionCookie = endpointConfiguration.getSessionCookie();
+ private static void registerClientInterceptors(IGenericClient genericClient, FhirConfiguration config) {
+ String username = config.getUsername();
+ String password = config.getPassword();
+ String accessToken = config.getAccessToken();
+ String sessionCookie = config.getSessionCookie();
if (ObjectHelper.isNotEmpty(username)) {
genericClient.registerInterceptor(new BasicAuthInterceptor(username, password));
}
if (ObjectHelper.isNotEmpty(accessToken)) {
genericClient.registerInterceptor(new BearerTokenAuthInterceptor(accessToken));
}
- if (endpointConfiguration.isLog()) {
+ if (config.isLog()) {
genericClient.registerInterceptor(new LoggingInterceptor(true));
}
- if (endpointConfiguration.isCompress()) {
+ if (config.isCompress()) {
genericClient.registerInterceptor(new GZipContentInterceptor());
}
if (ObjectHelper.isNotEmpty(sessionCookie)) {
@@ -138,15 +138,15 @@ public final class FhirHelper {
}
}
- private static FhirContext getFhirContext(FhirConfiguration endpointConfiguration) {
- FhirContext context = endpointConfiguration.getFhirContext();
+ private static FhirContext getFhirContext(FhirConfiguration config) {
+ FhirContext context = config.getFhirContext();
if (context != null) {
return context;
}
- if (ObjectHelper.isEmpty(endpointConfiguration.getServerUrl())) {
+ if (ObjectHelper.isEmpty(config.getServerUrl())) {
throw new RuntimeCamelException("The FHIR URL must be set!");
}
- FhirVersionEnum fhirVersion = endpointConfiguration.getFhirVersion();
+ FhirVersionEnum fhirVersion = config.getFhirVersion();
return new FhirContext(fhirVersion);
}
}
diff --git a/components/camel-fhir/camel-fhir-component/src/test/java/org/apache/camel/component/fhir/FhirConfigurationIT.java b/components/camel-fhir/camel-fhir-component/src/test/java/org/apache/camel/component/fhir/FhirConfigurationIT.java
index 9fca464..710c487 100644
--- a/components/camel-fhir/camel-fhir-component/src/test/java/org/apache/camel/component/fhir/FhirConfigurationIT.java
+++ b/components/camel-fhir/camel-fhir-component/src/test/java/org/apache/camel/component/fhir/FhirConfigurationIT.java
@@ -71,7 +71,7 @@ public class FhirConfigurationIT extends AbstractFhirTestSupport {
fhirConfiguration.setFhirVersion("DSTU3");
component.setConfiguration(fhirConfiguration);
- component.getClient(fhirConfiguration).registerInterceptor(this.mockClientInterceptor);
+ component.createClient(fhirConfiguration).registerInterceptor(this.mockClientInterceptor);
this.componentConfiguration = fhirConfiguration;
context.addComponent("fhir", component);