You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2018/07/23 15:13:26 UTC

[camel] branch master updated: Fixed a typo in Spring.factories and added tests for Camel-Fhir in Spring-boot

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 89e55b9  Fixed a typo in Spring.factories and added tests for Camel-Fhir in Spring-boot
89e55b9 is described below

commit 89e55b93948dcaeb275e01d0c2d5fe914951ab67
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Jul 23 17:08:29 2018 +0200

    Fixed a typo in Spring.factories and added tests for Camel-Fhir in Spring-boot
---
 .../src/main/docs/fhirJson-dataformat.adoc         | 65 +++++++++++++++++++++-
 .../src/main/docs/fhirXml-dataformat.adoc          | 65 +++++++++++++++++++++-
 .../src/main/resources/META-INF/spring.factories   |  3 +-
 .../camel/itest/springboot/CamelFhirTest.java      | 50 +++++++++++++++++
 4 files changed, 179 insertions(+), 4 deletions(-)

diff --git a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc
index 99fbef6..c1a16d5 100644
--- a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc
+++ b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirJson-dataformat.adoc
@@ -40,7 +40,7 @@ The FHIR JSon dataformat supports 14 options, which are listed below.
 === Spring Boot Auto-Configuration
 
 
-The component supports 3 options, which are listed below.
+The component supports 15 options, which are listed below.
 
 
 
@@ -51,9 +51,72 @@ The component supports 3 options, which are listed below.
  from the data format if the data format is capable of doing so. For
  example application/xml for data formats marshalling to XML, or
  application/json for data formats marshalling to JSon etc. | false | Boolean
+| *camel.dataformat.fhirjson.dont-encode-elements* | If provided, specifies the elements which should NOT be encoded. Valid
+ values for this field would include: Patient - Don't encode patient and
+ all its children Patient.name - Don't encode the patient's name
+ Patient.name.family - Don't encode the patient's family name .text -
+ Don't encode the text element on any resource (only the very first
+ position may contain a wildcard) DSTU2 note: Note that values including
+ meta, such as Patient.meta will work for DSTU2 parsers, but values with
+ subelements on meta such as Patient.meta.lastUpdated will only work in
+ DSTU3 mode. The option is a java.util.Set<java.lang.String> type. |  | String
+| *camel.dataformat.fhirjson.dont-strip-versions-from-references-at-paths* | If supplied value(s), any resource references at the specified paths will
+ have their resource versions encoded instead of being automatically
+ stripped during the encoding process. This setting has no effect on the
+ parsing process. This method provides a finer-grained level of control
+ than link setStripVersionsFromReferences(Boolean) and any paths specified
+ by this method will be encoded even if link
+ setStripVersionsFromReferences(Boolean) has been set to true (which is
+ the default) |  | List
 | *camel.dataformat.fhirjson.enabled* | Whether to enable auto configuration of the fhirJson data format. This is
  enabled by default. |  | Boolean
+| *camel.dataformat.fhirjson.encode-elements* | If provided, specifies the elements which should be encoded, to the
+ exclusion of all others. Valid values for this field would include:
+ Patient - Encode patient and all its children Patient.name - Encode only
+ the patient's name Patient.name.family - Encode only the patient's family
+ name .text - Encode the text element on any resource (only the very first
+ position may contain a wildcard) .(mandatory) - This is a special case
+ which causes any mandatory fields (min 0) to be encoded. The option is a
+ java.util.Set<java.lang.String> type. |  | String
+| *camel.dataformat.fhirjson.encode-elements-applies-to-child-resources-only* | If set to true (default is false), the values supplied to link
+ setEncodeElements(Set) will not be applied to the root resource
+ (typically a Bundle), but will be applied to any sub-resources contained
+ within it (i.e. search result resources in that bundle) | false | Boolean
+| *camel.dataformat.fhirjson.encode-elements-applies-to-resource-types* | If provided, tells the parse which resource types to apply link
+ setEncodeElements(Set) encode elements to. Any resource types not
+ specified here will be encoded completely, with no elements excluded. The
+ option is a java.util.Set<java.lang.String> type. |  | String
 | *camel.dataformat.fhirjson.fhir-version* | The version of FHIR to use. Possible values are:
  DSTU2,DSTU2_HL7ORG,DSTU2_1,DSTU3,R4 | DSTU3 | String
+| *camel.dataformat.fhirjson.omit-resource-id* | If set to true (default is false) the ID of any resources being encoded
+ will not be included in the output. Note that this does not apply to
+ contained resources, only to root resources. In other words, if this is
+ set to true, contained resources will still have local IDs but the
+ outer/containing ID will not have an ID. | false | Boolean
+| *camel.dataformat.fhirjson.override-resource-id-with-bundle-entry-full-url* | If set to true (which is the default), the Bundle.entry.fullUrl will
+ override the Bundle.entry.resource's resource id if the fullUrl is
+ defined. This behavior happens when parsing the source data into a Bundle
+ object. Set this to false if this is not the desired behavior (e.g. the
+ client code wishes to perform additional validation checks between the
+ fullUrl and the resource id). | false | Boolean
+| *camel.dataformat.fhirjson.pretty-print* | Sets the pretty print flag, meaning that the parser will encode resources
+ with human-readable spacing and newlines between elements instead of
+ condensing output as much as possible. | false | Boolean
+| *camel.dataformat.fhirjson.server-base-url* | Sets the server's base URL used by this parser. If a value is set,
+ resource references will be turned into relative references if they are
+ provided as absolute URLs but have a base matching the given base. |  | String
+| *camel.dataformat.fhirjson.strip-versions-from-references* | If set to true (which is the default), resource references containing a
+ version will have the version removed when the resource is encoded. This
+ is generally good behaviour because in most situations, references from
+ one resource to another should be to the resource by ID, not by ID and
+ version. In some cases though, it may be desirable to preserve the
+ version in resource links. In that case, this value should be set to
+ false. This method provides the ability to globally disable reference
+ encoding. If finer-grained control is needed, use link
+ setDontStripVersionsFromReferencesAtPaths(List) | false | Boolean
+| *camel.dataformat.fhirjson.summary-mode* | If set to true (default is false) only elements marked by the FHIR
+ specification as being summary elements will be included. | false | Boolean
+| *camel.dataformat.fhirjson.suppress-narratives* | If set to true (default is false), narratives will not be included in the
+ encoded values. | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc
index cc78341..94d40ac 100644
--- a/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc
+++ b/components/camel-fhir/camel-fhir-component/src/main/docs/fhirXml-dataformat.adoc
@@ -39,7 +39,7 @@ The FHIR XML dataformat supports 14 options, which are listed below.
 === Spring Boot Auto-Configuration
 
 
-The component supports 3 options, which are listed below.
+The component supports 15 options, which are listed below.
 
 
 
@@ -50,9 +50,72 @@ The component supports 3 options, which are listed below.
  from the data format if the data format is capable of doing so. For
  example application/xml for data formats marshalling to XML, or
  application/json for data formats marshalling to JSon etc. | false | Boolean
+| *camel.dataformat.fhirxml.dont-encode-elements* | If provided, specifies the elements which should NOT be encoded. Valid
+ values for this field would include: Patient - Don't encode patient and
+ all its children Patient.name - Don't encode the patient's name
+ Patient.name.family - Don't encode the patient's family name .text -
+ Don't encode the text element on any resource (only the very first
+ position may contain a wildcard) DSTU2 note: Note that values including
+ meta, such as Patient.meta will work for DSTU2 parsers, but values with
+ subelements on meta such as Patient.meta.lastUpdated will only work in
+ DSTU3 mode. The option is a java.util.Set<java.lang.String> type. |  | String
+| *camel.dataformat.fhirxml.dont-strip-versions-from-references-at-paths* | If supplied value(s), any resource references at the specified paths will
+ have their resource versions encoded instead of being automatically
+ stripped during the encoding process. This setting has no effect on the
+ parsing process. This method provides a finer-grained level of control
+ than link setStripVersionsFromReferences(Boolean) and any paths specified
+ by this method will be encoded even if link
+ setStripVersionsFromReferences(Boolean) has been set to true (which is
+ the default) |  | List
 | *camel.dataformat.fhirxml.enabled* | Whether to enable auto configuration of the fhirXml data format. This is
  enabled by default. |  | Boolean
+| *camel.dataformat.fhirxml.encode-elements* | If provided, specifies the elements which should be encoded, to the
+ exclusion of all others. Valid values for this field would include:
+ Patient - Encode patient and all its children Patient.name - Encode only
+ the patient's name Patient.name.family - Encode only the patient's family
+ name .text - Encode the text element on any resource (only the very first
+ position may contain a wildcard) .(mandatory) - This is a special case
+ which causes any mandatory fields (min 0) to be encoded. The option is a
+ java.util.Set<java.lang.String> type. |  | String
+| *camel.dataformat.fhirxml.encode-elements-applies-to-child-resources-only* | If set to true (default is false), the values supplied to link
+ setEncodeElements(Set) will not be applied to the root resource
+ (typically a Bundle), but will be applied to any sub-resources contained
+ within it (i.e. search result resources in that bundle) | false | Boolean
+| *camel.dataformat.fhirxml.encode-elements-applies-to-resource-types* | If provided, tells the parse which resource types to apply link
+ setEncodeElements(Set) encode elements to. Any resource types not
+ specified here will be encoded completely, with no elements excluded. The
+ option is a java.util.Set<java.lang.String> type. |  | String
 | *camel.dataformat.fhirxml.fhir-version* | The version of FHIR to use. Possible values are:
  DSTU2,DSTU2_HL7ORG,DSTU2_1,DSTU3,R4 | DSTU3 | String
+| *camel.dataformat.fhirxml.omit-resource-id* | If set to true (default is false) the ID of any resources being encoded
+ will not be included in the output. Note that this does not apply to
+ contained resources, only to root resources. In other words, if this is
+ set to true, contained resources will still have local IDs but the
+ outer/containing ID will not have an ID. | false | Boolean
+| *camel.dataformat.fhirxml.override-resource-id-with-bundle-entry-full-url* | If set to true (which is the default), the Bundle.entry.fullUrl will
+ override the Bundle.entry.resource's resource id if the fullUrl is
+ defined. This behavior happens when parsing the source data into a Bundle
+ object. Set this to false if this is not the desired behavior (e.g. the
+ client code wishes to perform additional validation checks between the
+ fullUrl and the resource id). | false | Boolean
+| *camel.dataformat.fhirxml.pretty-print* | Sets the pretty print flag, meaning that the parser will encode resources
+ with human-readable spacing and newlines between elements instead of
+ condensing output as much as possible. | false | Boolean
+| *camel.dataformat.fhirxml.server-base-url* | Sets the server's base URL used by this parser. If a value is set,
+ resource references will be turned into relative references if they are
+ provided as absolute URLs but have a base matching the given base. |  | String
+| *camel.dataformat.fhirxml.strip-versions-from-references* | If set to true (which is the default), resource references containing a
+ version will have the version removed when the resource is encoded. This
+ is generally good behaviour because in most situations, references from
+ one resource to another should be to the resource by ID, not by ID and
+ version. In some cases though, it may be desirable to preserve the
+ version in resource links. In that case, this value should be set to
+ false. This method provides the ability to globally disable reference
+ encoding. If finer-grained control is needed, use link
+ setDontStripVersionsFromReferencesAtPaths(List) | false | Boolean
+| *camel.dataformat.fhirxml.summary-mode* | If set to true (default is false) only elements marked by the FHIR
+ specification as being summary elements will be included. | false | Boolean
+| *camel.dataformat.fhirxml.suppress-narratives* | If set to true (default is false), narratives will not be included in the
+ encoded values. | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/resources/META-INF/spring.factories b/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/resources/META-INF/spring.factories
index d8da287..81f3946 100644
--- a/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/resources/META-INF/spring.factories
+++ b/platforms/spring-boot/components-starter/camel-fhir-starter/src/main/resources/META-INF/spring.factories
@@ -18,5 +18,4 @@
 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
 org.apache.camel.component.fhir.springboot.FhirJsonDataFormatAutoConfiguration,\
 org.apache.camel.component.fhir.springboot.FhirXmlDataFormatAutoConfiguration,\
-org.apache.camel.component.fhir.springboot.fhirComponentAutoConfiguration,\
-org.apache.camel.component.fhir.springboot.FhirComponentAutoConfiguration
\ No newline at end of file
+org.apache.camel.component.fhir.springboot.FhirComponentAutoConfiguration
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelFhirTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelFhirTest.java
new file mode 100644
index 0000000..c5adf80
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelFhirTest.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.itest.springboot;
+
+import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+@RunWith(Arquillian.class)
+public class CamelFhirTest extends AbstractSpringBootTestSupport {
+
+    @Deployment
+    public static Archive<?> createSpringBootPackage() throws Exception {
+        return ArquillianPackager.springBootPackage(createTestConfig());
+    }
+
+    public static ITestConfig createTestConfig() {
+        return new ITestConfigBuilder()
+                .module(inferModuleName(CamelFhirTest.class))
+                .build();
+    }
+
+    @Test
+    public void componentTests() throws Exception {
+        this.runComponentTest(config);
+        this.runDataformatTest(config, "fhirJson");
+        this.runDataformatTest(config, "fhirXml");
+        this.runModuleUnitTestsIfEnabled(config);
+    }
+
+
+}