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 2019/08/21 07:57:55 UTC

[camel] branch master updated (f604341 -> 8c6bd3b)

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

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


    from f604341  update: Component reference index.adoc
     new 0b7fad1  base structure camel-any23 dataformat
     new 623949c  add missing files to any23 dataformat basic structure
     new d2ff724  basic structure any23
     new 2ea75a6  some clean-up
     new d48be9d  basic marshal implementation any23
     new 786f650  Add configuration parameters. Add data format build clauses.
     new 7222a04  Marshal RDF-XML from microformats. Default configuration of Any 23.
     new 7f954bd  Fix marshal test
     new 22ae8ce  merge last camel version with any23 component
     new 17ebeaa  Improve configurability
     new 1e147a3  Improve configurability re build project
     new f5d494f  Restructure marshal/unmarshal Implement unmarshal Add karaf feature and test
     new e0cbc31  Improve documentation
     new 64f3273  Improve HTTP test. Add Spring XML test.
     new f9abcdd  Improve documentation
     new f158bd5  fix karaf support
     new 0158178  Rebuild project.
     new 03391af  suspend karaf support
     new 3176416  missing file to suspend karaf support
     new 8c6bd3b  Camel-Any23: Added a SB Integration test for the component

The 20 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 apache-camel/pom.xml                               |  10 +
 apache-camel/src/main/descriptors/common-bin.xml   |   2 +
 bom/camel-bom/pom.xml                              |  10 +
 components/camel-any23/pom.xml                     |  96 ++++++++++
 .../src/main/docs/any23-dataformat.adoc            | 119 ++++++++++++
 .../camel/dataformat/any23/Any23DataFormat.java    | 208 +++++++++++++++++++++
 .../camel/dataformat/any23/Any23OutputFormat.java  |  21 +++
 .../camel/dataformat/any23/utils/Any23Utils.java   |  63 +++++++
 .../dataformat/any23/writer/RDF4JModelWriter.java  |  68 +++++++
 .../any23/Any23DataFormatConfigurationsTest.java   |  66 +++++++
 .../any23/Any23DataFormatDefaultTest.java          |  55 ++++++
 .../any23/Any23DataFormatExtractorsTest.java       |  69 +++++++
 .../dataformat/any23/Any23DataFormatHTTPTest.java  |  57 ++++++
 .../any23/Any23DataFormatMarshalTest.java          |  58 ++++++
 .../dataformat/any23/Any23DataFormatModelTest.java |  56 ++++++
 .../any23/Any23DataFormatOutputFormatTest.java     |  62 ++++++
 .../any23/Any23DataFormatSpringTest.java           |  57 ++++++
 .../camel/dataformat/any23/Any23TestSupport.java   |  44 +++++
 .../src/test/resources/log4j2.properties           |  28 +++
 .../camel/dataformat/any23/microformat/vcard.html  |  79 ++++++++
 .../any23/spring/SpringAny23DataFormatTest.xml     |  51 +++++
 components/pom.xml                                 |   1 +
 components/readme.adoc                             |   4 +-
 .../org/apache/camel/builder/DataFormatClause.java |  25 +++
 .../org/apache/camel/model/MarshalDefinition.java  |   2 +
 .../apache/camel/model/UnmarshalDefinition.java    |   2 +
 .../camel/model/dataformat/Any23DataFormat.java    | 126 +++++++++++++
 .../apache/camel/model/dataformat/Any23Type.java   |  30 +++
 .../model/dataformat/DataFormatsDefinition.java    |   1 +
 .../reifier/dataformat/Any23DataFormatReifier.java |  51 +++++
 .../reifier/dataformat/DataFormatReifier.java      |   2 +
 docs/components/modules/ROOT/nav.adoc              |   1 +
 .../modules/ROOT/pages/any23-dataformat.adoc       | 119 ++++++++++++
 parent/pom.xml                                     |  34 ++++
 .../components-starter/camel-any23-starter/pom.xml |  53 ++++++
 .../Any23DataFormatAutoConfiguration.java          | 128 +++++++++++++
 .../springboot/Any23DataFormatConfiguration.java   |  97 ++++++++++
 .../src/main/resources/META-INF/LICENSE.txt        |   0
 .../src/main/resources/META-INF/NOTICE.txt         |   0
 .../src/main/resources/META-INF/spring.factories   |  19 ++
 .../src/main/resources/META-INF/spring.provides    |  17 ++
 platforms/spring-boot/components-starter/pom.xml   |   1 +
 .../camel-spring-boot-dependencies/pom.xml         |  25 +++
 .../camel/itest/springboot/CamelAny23Test.java     |  49 +++++
 44 files changed, 2065 insertions(+), 1 deletion(-)
 create mode 100644 components/camel-any23/pom.xml
 create mode 100644 components/camel-any23/src/main/docs/any23-dataformat.adoc
 create mode 100644 components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
 create mode 100644 components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java
 create mode 100644 components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/utils/Any23Utils.java
 create mode 100644 components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/writer/RDF4JModelWriter.java
 create mode 100644 components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatConfigurationsTest.java
 create mode 100644 components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
 create mode 100644 components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatExtractorsTest.java
 create mode 100644 components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatHTTPTest.java
 create mode 100644 components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatMarshalTest.java
 create mode 100644 components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatModelTest.java
 create mode 100644 components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatOutputFormatTest.java
 create mode 100644 components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatSpringTest.java
 create mode 100644 components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23TestSupport.java
 create mode 100644 components/camel-any23/src/test/resources/log4j2.properties
 create mode 100644 components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html
 create mode 100644 components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/spring/SpringAny23DataFormatTest.xml
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23Type.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
 create mode 100644 docs/components/modules/ROOT/pages/any23-dataformat.adoc
 create mode 100644 platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
 create mode 100644 platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatAutoConfiguration.java
 create mode 100644 platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
 copy {tooling/maven/camel-package-maven-plugin => platforms/spring-boot/components-starter/camel-any23-starter}/src/main/resources/META-INF/LICENSE.txt (100%)
 copy {tooling/maven/camel-package-maven-plugin => platforms/spring-boot/components-starter/camel-any23-starter}/src/main/resources/META-INF/NOTICE.txt (100%)
 create mode 100644 platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.factories
 create mode 100644 platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.provides
 create mode 100644 tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAny23Test.java


[camel] 02/20: add missing files to any23 dataformat basic structure

Posted by ac...@apache.org.
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

commit 623949c3d155c45dc1e3d8ef59541732fb25aa2e
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Sun Jun 9 12:22:46 2019 -0500

    add missing files to any23 dataformat basic structure
---
 .../src/main/docs/any23-dataformat.adoc            |  5 +-
 .../camel/dataformat/any23/any23DataFormat.java    |  3 +-
 .../tagsoup/TidyMarkupDataFormatAsStringTest.java  |  4 +-
 .../org/apache/camel/builder/DataFormatClause.java | 12 +++++
 .../org/apache/camel/model/MarshalDefinition.java  |  2 +
 .../apache/camel/model/UnmarshalDefinition.java    |  2 +
 .../model/dataformat/DataFormatsDefinition.java    |  1 +
 .../reifier/dataformat/Any23DataFormatReifier.java | 54 ++++++++++++++++++++++
 .../reifier/dataformat/DataFormatReifier.java      |  2 +
 9 files changed, 81 insertions(+), 4 deletions(-)

diff --git a/components/camel-any23/src/main/docs/any23-dataformat.adoc b/components/camel-any23/src/main/docs/any23-dataformat.adoc
index 74bcfc3..bb50788 100644
--- a/components/camel-any23/src/main/docs/any23-dataformat.adoc
+++ b/components/camel-any23/src/main/docs/any23-dataformat.adoc
@@ -1,5 +1,8 @@
+[[any23-dataformat]]
 == Any23 DataFormat
 == TidyMarkup DataFormat
+*Available as of Camel version 1.0*
+
 
 *Available as of Camel version 1.0*
 
@@ -108,4 +111,4 @@ the download page for the latest versions).
   <artifactId>camel-tagsoup</artifactId>
   <version>x.x.x</version>
 </dependency>
-----------------------------------------
+----------------------------------------
\ No newline at end of file
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/any23DataFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/any23DataFormat.java
index d4b1622..9dd325d 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/any23DataFormat.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/any23DataFormat.java
@@ -61,8 +61,7 @@ public class any23DataFormat extends ServiceSupport implements DataFormat, DataF
    * Marshal data. Generate RDF.
    */
   public void marshal(Exchange exchange, Object object, OutputStream outputStream) throws Exception {
-    throw new CamelException("Marshalling from Well Formed HTML to ugly HTML is not supported."
-            + " Only unmarshal is supported");
+    throw new CamelException("Sin implementaci[on aun");
   }
 
   /**
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsStringTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsStringTest.java
index 204fd33..83e672c 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsStringTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsStringTest.java
@@ -64,7 +64,9 @@ public class TidyMarkupDataFormatAsStringTest extends CamelTestSupport {
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("direct:start").unmarshal().tidyMarkup().to("mock:result");
+              from("direct:start").marshal().any23().to("mock:result");
+              //  from("direct:start").marshal().tidyMarkup();
+              //  from("direct:start").unmarshal().tidyMarkup().to("mock:result");
             }
         };
     }
diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java b/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
index fa9cda9..54a7be6 100644
--- a/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
+++ b/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
@@ -23,6 +23,7 @@ import org.w3c.dom.Node;
 
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.model.dataformat.Any23DataFormat;
 import org.apache.camel.model.dataformat.ASN1DataFormat;
 import org.apache.camel.model.dataformat.AvroDataFormat;
 import org.apache.camel.model.dataformat.Base64DataFormat;
@@ -82,6 +83,17 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
         this.operation = operation;
     }
 
+
+
+
+     /**
+     * Uses the Any23 data format
+     */
+    public T any23() {
+        return dataFormat(new Any23DataFormat());
+    }
+
+
     /**
      * Uses the Avro data format
      */
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/MarshalDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/MarshalDefinition.java
index 1c361c6..354d676 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/MarshalDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/MarshalDefinition.java
@@ -22,6 +22,7 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElements;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.model.dataformat.Any23DataFormat;
 import org.apache.camel.model.dataformat.ASN1DataFormat;
 import org.apache.camel.model.dataformat.AvroDataFormat;
 import org.apache.camel.model.dataformat.BarcodeDataFormat;
@@ -72,6 +73,7 @@ import org.apache.camel.spi.Metadata;
 public class MarshalDefinition extends NoOutputDefinition<MarshalDefinition> {
 
     @XmlElements({
+        @XmlElement(required = false, name = "any23", type = Any23DataFormat.class),
         @XmlElement(required = false, name = "asn1", type = ASN1DataFormat.class),
         @XmlElement(required = false, name = "avro", type = AvroDataFormat.class),
         @XmlElement(required = false, name = "barcode", type = BarcodeDataFormat.class),
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/UnmarshalDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/UnmarshalDefinition.java
index 4d20394..0e50e0d 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/UnmarshalDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/UnmarshalDefinition.java
@@ -22,6 +22,7 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElements;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.model.dataformat.Any23DataFormat;
 import org.apache.camel.model.dataformat.ASN1DataFormat;
 import org.apache.camel.model.dataformat.AvroDataFormat;
 import org.apache.camel.model.dataformat.BarcodeDataFormat;
@@ -73,6 +74,7 @@ import org.apache.camel.spi.Metadata;
 public class UnmarshalDefinition extends NoOutputDefinition<UnmarshalDefinition> {
 
     @XmlElements({
+        @XmlElement(required = false, name = "any23", type = Any23DataFormat.class),
         @XmlElement(required = false, name = "asn1", type = ASN1DataFormat.class),
         @XmlElement(required = false, name = "avro", type = AvroDataFormat.class),
         @XmlElement(required = false, name = "barcode", type = BarcodeDataFormat.class),
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatsDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatsDefinition.java
index 13a57c9..99b1a0a 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatsDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatsDefinition.java
@@ -39,6 +39,7 @@ public class DataFormatsDefinition {
 
     // cannot use @XmlElementRef as it doesn't allow optional properties
     @XmlElements({
+        @XmlElement(required = false, name = "any23", type = Any23DataFormat.class),
         @XmlElement(required = false, name = "asn1", type = ASN1DataFormat.class),
         @XmlElement(required = false, name = "avro", type = AvroDataFormat.class),
         @XmlElement(required = false, name = "barcode", type = BarcodeDataFormat.class),
diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
new file mode 100644
index 0000000..ae0ea05
--- /dev/null
+++ b/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
@@ -0,0 +1,54 @@
+/*
+ * 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.reifier.dataformat;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.model.DataFormatDefinition;
+import org.apache.camel.model.dataformat.Any23DataFormat;
+import org.apache.camel.spi.DataFormat;
+
+public class Any23DataFormatReifier extends DataFormatReifier<Any23DataFormat> {
+
+    public Any23DataFormatReifier(DataFormatDefinition definition) {
+        super((Any23DataFormat) definition);
+    }
+
+   /* @Override
+    protected DataFormat doCreateDataFormat(CamelContext camelContext) {
+        if (definition.getDataObjectType() == null && definition.getDataObjectTypeName() != null) {
+            try {
+                definition.setDataObjectType(camelContext.getClassResolver().resolveMandatoryClass(definition.getDataObjectTypeName()));
+            } catch (ClassNotFoundException e) {
+                throw RuntimeCamelException.wrapRuntimeCamelException(e);
+            }
+        }
+
+        return super.doCreateDataFormat(camelContext);
+    }*/
+
+    @Override
+    protected void configureDataFormat(DataFormat dataFormat, CamelContext camelContext) {
+        /*if (definition.getDataObjectType() != null) {
+            setProperty(camelContext, dataFormat, "dataObjectType", definition.getDataObjectType());
+        }
+        if (definition.getOmitXmlDeclaration() != null) {
+            setProperty(camelContext, dataFormat, "omitXmlDeclaration", definition.getOmitXmlDeclaration());
+        }*/
+    }
+
+}
diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java
index 61a9337..8fdabd1 100644
--- a/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java
+++ b/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/DataFormatReifier.java
@@ -24,6 +24,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.model.Model;
 import org.apache.camel.model.ProcessorDefinitionHelper;
+import org.apache.camel.model.dataformat.Any23DataFormat;
 import org.apache.camel.model.dataformat.ASN1DataFormat;
 import org.apache.camel.model.dataformat.AvroDataFormat;
 import org.apache.camel.model.dataformat.BarcodeDataFormat;
@@ -76,6 +77,7 @@ public abstract class DataFormatReifier<T extends DataFormatDefinition> {
     private static final Map<Class<? extends DataFormatDefinition>, Function<DataFormatDefinition, DataFormatReifier<? extends DataFormatDefinition>>> DATAFORMATS;
     static {
         Map<Class<? extends DataFormatDefinition>, Function<DataFormatDefinition, DataFormatReifier<? extends DataFormatDefinition>>> map = new HashMap<>();
+        map.put(Any23DataFormat.class,Any23DataFormatReifier::new);
         map.put(ASN1DataFormat.class, ASN1DataFormatReifier::new);
         map.put(AvroDataFormat.class, AvroDataFormatReifier::new);
         map.put(BarcodeDataFormat.class, BarcodeDataFormatReifier::new);


[camel] 10/20: Improve configurability

Posted by ac...@apache.org.
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

commit 17ebeaabefea872cf2330038793af4c1b3a72d1f
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Mon Jul 15 06:55:41 2019 -0500

    Improve configurability
---
 components/camel-any23/pom.xml                     |   5 +
 .../src/main/docs/any23-dataformat.adoc            |  15 ++-
 .../camel/dataformat/any23/Any23DataFormat.java    | 129 ++++++++-------------
 .../camel/dataformat/any23/Any23OutputFormat.java  |   2 +-
 .../camel/dataformat/any23/Any23Parameters.java    |  36 ------
 .../camel/dataformat/any23/utils/Any23Utils.java   |  58 +++++++++
 ...java => Any23DataFormatConfigurationsTest.java} |  17 ++-
 ...icTest.java => Any23DataFormatDefaultTest.java} |  10 +-
 ...est.java => Any23DataFormatExtractorsTest.java} |  21 +++-
 ...t.java => Any23DataFormatOutputFormatTest.java} |  11 +-
 .../camel/dataformat/any23/Any23TestSupport.java   |  15 ++-
 .../src/test/resources/log4j2.properties           |   2 +-
 .../camel/dataformat/any23/microformat/vcard.html  |  14 +++
 .../apache/camel/dataformat/any23/testfile1.html   |  38 ------
 .../camel/dataformat/any23/testfile2-evilHtml.html |  77 ------------
 15 files changed, 180 insertions(+), 270 deletions(-)

diff --git a/components/camel-any23/pom.xml b/components/camel-any23/pom.xml
index 14f7b4c..0330ca0 100644
--- a/components/camel-any23/pom.xml
+++ b/components/camel-any23/pom.xml
@@ -79,5 +79,10 @@
       <artifactId>rdf4j-rio-rdfxml</artifactId>
       <version>3.0.0-M1</version>
     </dependency>
+    <dependency>
+      <groupId>org.eclipse.rdf4j</groupId>
+      <artifactId>rdf4j-rio-turtle</artifactId>
+      <version>3.0.0-M1</version>
+    </dependency>
   </dependencies>
 </project>
diff --git a/components/camel-any23/src/main/docs/any23-dataformat.adoc b/components/camel-any23/src/main/docs/any23-dataformat.adoc
index 962f3a4..3155e14 100644
--- a/components/camel-any23/src/main/docs/any23-dataformat.adoc
+++ b/components/camel-any23/src/main/docs/any23-dataformat.adoc
@@ -32,10 +32,10 @@ The Any23 dataformat supports 5 options, which are listed below.
 [width="100%",cols="2s,1m,1m,6",options="header"]
 |===
 | Name | Default | Java Type | Description
-| outputFormat | MODEL | String | 
-| configurations |  | String | 
-| extractors |  | String | 
-| baseuri |  | String | 
+| outputFormat | MODEL | Any23Type | 
+| configurations |  | Map | 
+| extractors |  | List | 
+| baseURI |  | String | 
 | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type 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.
 |===
 // dataformat options: END
@@ -55,19 +55,18 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 6 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.dataformat.any23.baseuri* |  |  | String
+| *camel.dataformat.any23.base-u-r-i* |  |  | String
 | *camel.dataformat.any23.configurations* |  |  | String
 | *camel.dataformat.any23.content-type-header* | Whether the data format should set the Content-Type header with the type 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.any23.enabled* | Whether to enable auto configuration of the any23 data format. This is enabled by default. |  | Boolean
-| *camel.dataformat.any23.extractors* |  |  | String
-| *camel.dataformat.any23.output-format* |  | MODEL | String
+| *camel.dataformat.any23.extractors* |  |  | List
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
index 0d2122c..2400b0a 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
@@ -18,19 +18,18 @@ package org.apache.camel.dataformat.any23;
 
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
 import org.apache.any23.Any23;
 import org.apache.any23.configuration.DefaultConfiguration;
 import org.apache.any23.configuration.ModifiableConfiguration;
 import org.apache.any23.source.DocumentSource;
 import org.apache.any23.source.StringDocumentSource;
-import org.apache.any23.writer.JSONLDWriter;
-import org.apache.any23.writer.NQuadsWriter;
-import org.apache.any23.writer.NTriplesWriter;
-import org.apache.any23.writer.RDFXMLWriter;
 import org.apache.any23.writer.TripleHandler;
-import org.apache.any23.writer.TurtleWriter;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.dataformat.any23.utils.Any23Utils;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.DataFormatName;
 import org.apache.camel.spi.annotations.Dataformat;
@@ -52,14 +51,11 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
   private static final Logger LOG = LoggerFactory.getLogger(Any23DataFormat.class);
 
   private Any23 any23;
-  private Any23OutputFormat format = Any23OutputFormat.RDFXML;
-  private ModifiableConfiguration conf;
-  private String[] extractorsList;
 
-  private String configurations;
-  private String extractors;
-  private String outputFormat;
-  private String documentIRI = "http://mock.foo/bar";
+  private Map<String, String> configurations;
+  private List<String> extractors;
+  private Any23OutputFormat outputFormat;
+  private String baseURI;
 
   @Override
   public String getDataFormatName() {
@@ -71,30 +67,8 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
    */
   public void marshal(Exchange exchange, Object object, OutputStream outputStream) throws Exception {
     final String payload = ExchangeHelper.convertToMandatoryType(exchange, String.class, object);
-    DocumentSource source = new StringDocumentSource(payload, documentIRI);
-    TripleHandler handler;
-    switch (format) {
-      case NTRIPLES:
-        handler = new NTriplesWriter(outputStream);
-        break;
-      case TURTLE:
-        handler = new TurtleWriter(outputStream);
-        break;
-      case NQUADS:
-        handler = new NQuadsWriter(outputStream);
-        break;
-      case RDFXML:
-        handler = new RDFXMLWriter(outputStream);
-        break;
-      case JSONLD:
-        handler = new JSONLDWriter(outputStream);
-        break;
-      case MODEL:
-        handler = new NTriplesWriter(outputStream);
-        break;
-      default:
-        handler = new NTriplesWriter(outputStream);
-    }
+    DocumentSource source = new StringDocumentSource(payload, baseURI);
+    TripleHandler handler = Any23Utils.obtainHandler(outputFormat, outputStream);
     any23.extract(source, handler);
     handler.close();
   }
@@ -104,33 +78,38 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
    */
   public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
     //TODO
+    //Under construction
+    //Looking for libraries which could perform RDF -> HTML 
+    //Candidate: https://github.com/rhizomik/redefer-rdf2html
     return null;
   }
 
   @Override
   protected void doStart() throws Exception {
-    conf = DefaultConfiguration.copy();
-    if (configurations != null) {
-      String[] newConfigs = configurations.split(";");
-      for (String con : newConfigs) {
-        String[] vals = con.split("=");
-        conf.setProperty(vals[0], vals[0]);
+    ModifiableConfiguration conf = null;
+    String[] extrArray = null;
+    if (extractors != null && !extractors.isEmpty()) {
+      extrArray = new String[extractors.size()];
+      extrArray = extractors.toArray(extrArray);
+    }
+    if (configurations != null && !configurations.isEmpty()) {
+      conf = DefaultConfiguration.copy();
+      for (Entry<String, String> entry : configurations.entrySet()) {
+        conf.setProperty(entry.getKey(), entry.getValue());
       }
     }
-    if (extractors != null) {
-      extractorsList = extractors.split(";");
+    if (outputFormat == null) {
+      //Default output format
+      outputFormat = Any23OutputFormat.RDFXML;
     }
-    if (configurations == null && extractors == null) {
+    if (conf == null && extrArray == null) {
       any23 = new Any23();
-    } else if (configurations != null && extractors == null) {
+    } else if (conf != null && extrArray == null) {
       any23 = new Any23(conf);
-    } else if (configurations == null && extractors != null) {
-      any23 = new Any23(extractors);
-    } else if (configurations != null && extractors != null) {
-      any23 = new Any23(conf, extractors);
-    }
-    if (outputFormat != null) {
-      format = Any23OutputFormat.valueOf(outputFormat);
+    } else if (conf == null && extrArray != null) {
+      any23 = new Any23(extrArray);
+    } else if (conf != null && extrArray != null) {
+      any23 = new Any23(conf, extrArray);
     }
   }
 
@@ -147,52 +126,36 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
     this.any23 = any23;
   }
 
-  public Any23OutputFormat getFormat() {
-    return format;
-  }
-
-  public void setFormat(Any23OutputFormat format) {
-    this.format = format;
-  }
-
-  public ModifiableConfiguration getConf() {
-    return conf;
-  }
-
-  public void setConf(ModifiableConfiguration conf) {
-    this.conf = conf;
-  }
-
-  public String[] getExtractorsList() {
-    return extractorsList;
-  }
-
-  public void setExtractorsList(String[] extractorsList) {
-    this.extractorsList = extractorsList;
-  }
-
-  public String getConfigurations() {
+  public Map<String, String> getConfigurations() {
     return configurations;
   }
 
-  public void setConfigurations(String configurations) {
+  public void setConfigurations(Map<String, String> configurations) {
     this.configurations = configurations;
   }
 
-  public String getExtractors() {
+  public List<String> getExtractors() {
     return extractors;
   }
 
-  public void setExtractors(String extractors) {
+  public void setExtractors(List<String> extractors) {
     this.extractors = extractors;
   }
 
-  public String getOutputFormat() {
+  public Any23OutputFormat getOutputFormat() {
     return outputFormat;
   }
 
-  public void setOutputFormat(String outputFormat) {
+  public void setOutputFormat(Any23OutputFormat outputFormat) {
     this.outputFormat = outputFormat;
   }
 
+  public String getBaseURI() {
+    return baseURI;
+  }
+
+  public void setBaseURI(String baseURI) {
+    this.baseURI = baseURI;
+  }
+
 }
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java
index 0ceddc5..3d4d12a 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java
@@ -17,5 +17,5 @@
 package org.apache.camel.dataformat.any23;
 
 public enum Any23OutputFormat {
-  NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON, MODEL
+  NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON
 }
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23Parameters.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23Parameters.java
deleted file mode 100644
index cb9536c..0000000
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23Parameters.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.apache.camel.dataformat.any23;
-
-import java.io.ByteArrayOutputStream;
-import org.apache.any23.writer.NTriplesWriter;
-import org.apache.any23.writer.TripleHandler;
-
-/**
- *
- * @author joe
- */
-public class Any23Parameters {
-
-  private ByteArrayOutputStream OUT;
-//public static  final TripleHandler TRIPLEHANDLER ;
-
-  private TripleHandler triplehandler;
-
-  public TripleHandler getTripleHandlerOutput() {
-    return triplehandler;
-  }
-
-  public void setTripleHandlerOutput(TripleHandler triplehandler) {
-    this.triplehandler = triplehandler;
-  }
-
-  public Any23Parameters(ByteArrayOutputStream out) {
-    this.OUT = out;
-    this.triplehandler = new NTriplesWriter(out);
-  }
-
-}
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/utils/Any23Utils.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/utils/Any23Utils.java
new file mode 100644
index 0000000..6c97a5e
--- /dev/null
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/utils/Any23Utils.java
@@ -0,0 +1,58 @@
+/*
+ * 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.dataformat.any23.utils;
+
+import java.io.OutputStream;
+import org.apache.any23.writer.JSONLDWriter;
+import org.apache.any23.writer.JSONWriter;
+import org.apache.any23.writer.NQuadsWriter;
+import org.apache.any23.writer.NTriplesWriter;
+import org.apache.any23.writer.RDFXMLWriter;
+import org.apache.any23.writer.TripleHandler;
+import org.apache.any23.writer.TurtleWriter;
+import org.apache.camel.dataformat.any23.Any23OutputFormat;
+
+public class Any23Utils {
+
+  public static TripleHandler obtainHandler(Any23OutputFormat format, OutputStream outputStream) {
+    TripleHandler handler;
+    switch (format) {
+      case NTRIPLES:
+        handler = new NTriplesWriter(outputStream);
+        break;
+      case TURTLE:
+        handler = new TurtleWriter(outputStream);
+        break;
+      case NQUADS:
+        handler = new NQuadsWriter(outputStream);
+        break;
+      case RDFXML:
+        handler = new RDFXMLWriter(outputStream);
+        break;
+      case JSONLD:
+        handler = new JSONLDWriter(outputStream);
+        break;
+      case RDFJSON:
+        handler = new JSONWriter(outputStream);
+        break;
+      default:
+        throw new AssertionError(format.name());
+    }
+    return handler;
+  }
+
+}
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatConfigurationsTest.java
similarity index 77%
copy from components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
copy to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatConfigurationsTest.java
index 9f7a465..d7c34dd 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatConfigurationsTest.java
@@ -18,11 +18,14 @@ package org.apache.camel.dataformat.any23;
 
 import java.io.File;
 import java.io.InputStream;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.model.dataformat.Any23Type;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.apache.commons.io.IOUtils;
 import org.eclipse.rdf4j.model.Model;
@@ -30,10 +33,12 @@ import org.eclipse.rdf4j.rio.RDFFormat;
 import org.eclipse.rdf4j.rio.Rio;
 import org.junit.Test;
 
-public class Any23DataFormatBasicTest extends CamelTestSupport {
+public class Any23DataFormatConfigurationsTest extends CamelTestSupport {
+
+  private final String BASEURI = "http://mock.foo/bar";
 
   @Test
-  public void testMarshalToRDFXMLFromHTML() throws Exception {
+  public void test() throws Exception {
     MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
     String contenhtml = Any23TestSupport.loadFileAsString(new File("src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html"));
     template.sendBody("direct:start", contenhtml);
@@ -42,8 +47,8 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
       Message in = exchange.getIn();
       String resultingRDF = in.getBody(String.class);
       InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
-      Model parse = Rio.parse(toInputStream, "http://mock.foo/bar", RDFFormat.RDFXML);
-      assertEquals(parse.size(), 28);
+      Model parse = Rio.parse(toInputStream, BASEURI, RDFFormat.TURTLE);
+      assertEquals(parse.size(), 25);
     }
   }
 
@@ -51,7 +56,9 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
   protected RouteBuilder createRouteBuilder() {
     return new RouteBuilder() {
       public void configure() {
-        from("direct:start").marshal().any23("http://mock.foo/bar").to("mock:result");
+        Map<String, String> conf = new HashMap();
+        conf.put("any23.extraction.metadata.nesting", "off");
+        from("direct:start").marshal().any23(BASEURI, Any23Type.TURTLE, conf).to("mock:result");
       }
     };
   }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
similarity index 87%
copy from components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
copy to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
index 9f7a465..244dedd 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
@@ -30,10 +30,12 @@ import org.eclipse.rdf4j.rio.RDFFormat;
 import org.eclipse.rdf4j.rio.Rio;
 import org.junit.Test;
 
-public class Any23DataFormatBasicTest extends CamelTestSupport {
+public class Any23DataFormatDefaultTest extends CamelTestSupport {
+
+  private final String BASEURI = "http://mock.foo/bar";
 
   @Test
-  public void testMarshalToRDFXMLFromHTML() throws Exception {
+  public void test() throws Exception {
     MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
     String contenhtml = Any23TestSupport.loadFileAsString(new File("src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html"));
     template.sendBody("direct:start", contenhtml);
@@ -42,7 +44,7 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
       Message in = exchange.getIn();
       String resultingRDF = in.getBody(String.class);
       InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
-      Model parse = Rio.parse(toInputStream, "http://mock.foo/bar", RDFFormat.RDFXML);
+      Model parse = Rio.parse(toInputStream, BASEURI, RDFFormat.RDFXML);
       assertEquals(parse.size(), 28);
     }
   }
@@ -51,7 +53,7 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
   protected RouteBuilder createRouteBuilder() {
     return new RouteBuilder() {
       public void configure() {
-        from("direct:start").marshal().any23("http://mock.foo/bar").to("mock:result");
+        from("direct:start").marshal().any23(BASEURI).to("mock:result");
       }
     };
   }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatExtractorsTest.java
similarity index 73%
copy from components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
copy to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatExtractorsTest.java
index 9f7a465..1cf88e6 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatExtractorsTest.java
@@ -18,11 +18,15 @@ package org.apache.camel.dataformat.any23;
 
 import java.io.File;
 import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.model.dataformat.Any23Type;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.apache.commons.io.IOUtils;
 import org.eclipse.rdf4j.model.Model;
@@ -30,10 +34,12 @@ import org.eclipse.rdf4j.rio.RDFFormat;
 import org.eclipse.rdf4j.rio.Rio;
 import org.junit.Test;
 
-public class Any23DataFormatBasicTest extends CamelTestSupport {
+public class Any23DataFormatExtractorsTest extends CamelTestSupport {
+
+  private final String BASEURI = "http://mock.foo/bar";
 
   @Test
-  public void testMarshalToRDFXMLFromHTML() throws Exception {
+  public void test() throws Exception {
     MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
     String contenhtml = Any23TestSupport.loadFileAsString(new File("src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html"));
     template.sendBody("direct:start", contenhtml);
@@ -41,9 +47,10 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
     for (Exchange exchange : list) {
       Message in = exchange.getIn();
       String resultingRDF = in.getBody(String.class);
+      System.out.println(resultingRDF);
       InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
-      Model parse = Rio.parse(toInputStream, "http://mock.foo/bar", RDFFormat.RDFXML);
-      assertEquals(parse.size(), 28);
+      Model parse = Rio.parse(toInputStream, BASEURI, RDFFormat.TURTLE);
+      assertEquals(parse.size(), 1);
     }
   }
 
@@ -51,7 +58,11 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
   protected RouteBuilder createRouteBuilder() {
     return new RouteBuilder() {
       public void configure() {
-        from("direct:start").marshal().any23("http://mock.foo/bar").to("mock:result");
+        Map<String, String> conf = new HashMap();
+        conf.put("any23.extraction.metadata.nesting", "off");
+        List<String> extc = new ArrayList();
+        extc.add("html-head-title");
+        from("direct:start").marshal().any23(BASEURI, Any23Type.TURTLE, conf, extc).to("mock:result");
       }
     };
   }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatOutputFormatTest.java
similarity index 84%
rename from components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
rename to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatOutputFormatTest.java
index 9f7a465..d00c196 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatOutputFormatTest.java
@@ -23,6 +23,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.model.dataformat.Any23Type;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.apache.commons.io.IOUtils;
 import org.eclipse.rdf4j.model.Model;
@@ -30,10 +31,12 @@ import org.eclipse.rdf4j.rio.RDFFormat;
 import org.eclipse.rdf4j.rio.Rio;
 import org.junit.Test;
 
-public class Any23DataFormatBasicTest extends CamelTestSupport {
+public class Any23DataFormatOutputFormatTest extends CamelTestSupport {
+
+  private final String BASEURI = "http://mock.foo/bar";
 
   @Test
-  public void testMarshalToRDFXMLFromHTML() throws Exception {
+  public void test() throws Exception {
     MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
     String contenhtml = Any23TestSupport.loadFileAsString(new File("src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html"));
     template.sendBody("direct:start", contenhtml);
@@ -42,7 +45,7 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
       Message in = exchange.getIn();
       String resultingRDF = in.getBody(String.class);
       InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
-      Model parse = Rio.parse(toInputStream, "http://mock.foo/bar", RDFFormat.RDFXML);
+      Model parse = Rio.parse(toInputStream, BASEURI, RDFFormat.TURTLE);
       assertEquals(parse.size(), 28);
     }
   }
@@ -51,7 +54,7 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
   protected RouteBuilder createRouteBuilder() {
     return new RouteBuilder() {
       public void configure() {
-        from("direct:start").marshal().any23("http://mock.foo/bar").to("mock:result");
+        from("direct:start").marshal().any23(BASEURI, Any23Type.TURTLE).to("mock:result");
       }
     };
   }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23TestSupport.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23TestSupport.java
index 04d4f6a..9f34d74 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23TestSupport.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23TestSupport.java
@@ -1,11 +1,3 @@
-package org.apache.camel.dataformat.any23;
-
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import org.apache.camel.util.IOHelper;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -22,6 +14,13 @@ import org.apache.camel.util.IOHelper;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+package org.apache.camel.dataformat.any23;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import org.apache.camel.util.IOHelper;
+
 public final class Any23TestSupport {
 
   private Any23TestSupport() {
diff --git a/components/camel-any23/src/test/resources/log4j2.properties b/components/camel-any23/src/test/resources/log4j2.properties
index 57bb91f..b919809 100644
--- a/components/camel-any23/src/test/resources/log4j2.properties
+++ b/components/camel-any23/src/test/resources/log4j2.properties
@@ -17,7 +17,7 @@
 
 appender.file.type = File
 appender.file.name = file
-appender.file.fileName = target/camel-atom-test.log
+appender.file.fileName = target/camel-any23-test.log
 appender.file.layout.type = PatternLayout
 appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
 appender.out.type = Console
diff --git a/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html
index c09a89b..2b79fb1 100644
--- a/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html
+++ b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html
@@ -1,3 +1,17 @@
+<!--
+    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.
+-->
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
diff --git a/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile1.html b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile1.html
deleted file mode 100644
index b6f4707..0000000
--- a/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile1.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--
-
-    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.
-
--->
-<html>
-     <head>
-      <title>FooBar</title>
-      <meta name=metatag value=foo>
-     </head>
-     
-     <body onload="foo()"  >
-         <p>
-            Some text
-            
-         <p>
-             Some more Text
-     <p>TidyMarkupNode
-          <img src=filename.jpg>
-          
-          <font color="red">Some red text
-          
-     </body>
-    
-</HTML>
\ No newline at end of file
diff --git a/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile2-evilHtml.html b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile2-evilHtml.html
deleted file mode 100644
index 35ec6da..0000000
--- a/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile2-evilHtml.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--
-
-    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.
-
--->
-<html>
-<META-START>
-John Cowan
-<TABLE>
-<ROW>
-<CELL>SOUPE</CELL>
-<CELL>BE EVIL!</CELL></ROW>
-DE BALISES</TABLE>
-<CORR NEW="U" LOC="PI"/>
-<G ID="P1">
-Ecritez une balise ouvrante (sans attributs)
-</G>
-ou fermante HTML ici, s.v.p.</META-START>
-<FONT>X Y <p> ABC </FONT> xyz
-QRS<sup>TUV<sub>WXY</sup>Z</sub>
-
-<p>TidyMarkupNode
-<script language="javascript"><p></script>
-<table><tbody><tr><th>ABC
-</table><nr/>
-<meta><meta><meta><meta>
-<pre xml:space="default">test</pre>
-<test xmlns:xml="http://www.example.org/>
-</test><hr/>
-(add a random HTML tag above)
-<r:r:r:test/>
-
-<b><i></B></I>
-<b>
-  <p>bbb</b></p>
-  <p>bbb</b></p>
-  <p>bbb</b></p>
-<blink>&grec;
-<p xmlns:xqp="http://www.w3.org/1998/XML">
- <span xqp:space="preserve">~~~</span>
-</p></blink>
-<html:p xmlns:html="http://...."></p>
-<@/><!--Apple logo in PUA-->
-<!--comment--comment-->
-<!--comment--comment>
-
-<P>]]>
-<P id="7" id="8">M</p>
-<p xmlns:a="urn" xmlns:b="urn"
-   a:id="7" b:id="9">~~~</p>
-<p id="a" idref="a"/>  BE EVIL!
-<extreme sID="a" mood="happy"/>
-<extreme eID="a" mood="sad"/>
-<math><mi>2</mi><msup>3
-  </msup></math>  <title>
-<verse><seg>When,</seg><seg>in</line>
-<line>the beginning</line><line>God created
-the heaven and the earth.</line></verse>
-
-<How/><To/><Markup/><Legibly/>
-<Name Name="Name">Name</Name>
-<list 4 text </p>
-<marquee>foo!</marquee>
-		
\ No newline at end of file


[camel] 19/20: missing file to suspend karaf support

Posted by ac...@apache.org.
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

commit 3176416e1ea016f42558ffe7ad4f150159355f07
Author: betoflow <be...@gmail.com>
AuthorDate: Mon Aug 19 23:16:25 2019 -0500

    missing file to suspend karaf support
---
 .../apache/camel/itest/karaf/CamelAny23Test.java   | 33 ----------------------
 1 file changed, 33 deletions(-)

diff --git a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelAny23Test.java b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelAny23Test.java
deleted file mode 100644
index 0415345..0000000
--- a/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelAny23Test.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.karaf;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.junit.PaxExam;
-
-@RunWith(PaxExam.class)
-public class CamelAny23Test extends BaseKarafTest {
-
-  public static final String COMPONENT = extractName(CamelAny23Test.class);
-
-  @Test
-  public void test() throws Exception {
-    testDataFormat(COMPONENT, "any23");
-  }
-
-}


[camel] 17/20: Rebuild project.

Posted by ac...@apache.org.
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

commit 01581787605eab637ea678c209e9e0a89fadb59e
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Fri Aug 16 17:07:22 2019 -0500

    Rebuild project.
---
 .../camel-any23/src/main/docs/any23-dataformat.adoc      | 13 +++++++------
 components/readme.adoc                                   |  2 +-
 .../endpoint/dsl/DataSetEndpointBuilderFactory.java      |  2 +-
 docs/components/modules/ROOT/pages/any23-dataformat.adoc | 13 +++++++------
 .../components-starter/camel-any23-starter/pom.xml       | 16 ----------------
 .../any23/springboot/Any23DataFormatConfiguration.java   | 10 +++++-----
 .../camel-spring-boot-dependencies/pom.xml               |  9 +++++++--
 7 files changed, 28 insertions(+), 37 deletions(-)

diff --git a/components/camel-any23/src/main/docs/any23-dataformat.adoc b/components/camel-any23/src/main/docs/any23-dataformat.adoc
index 3f6450c..36d2a84 100644
--- a/components/camel-any23/src/main/docs/any23-dataformat.adoc
+++ b/components/camel-any23/src/main/docs/any23-dataformat.adoc
@@ -1,11 +1,12 @@
 [[any23-dataformat]]
-== Any23 DataFormat
-Camel Any23 is a DataFormat that uses the Apache Anything To Triples (Any23) library to extract structured data in RDF from a variety of documents on the web. 
+= Any23 DataFormat
+Camel Any23 is a DataFormat that uses the Apache Anything To Triples (Any23) library to extract structured data in RDF from a variety of documents on the web.
 *Available as of Camel version 3.0*
 
-The main functionality of this DataFormat focuses on its Unmarshal method which extracts RDF triplets from compatible pages, in a wide variety of RDF syntaxes.
 
 *Available as of Camel version 3.0*
+
+The main functionality of this DataFormat focuses on its Unmarshal method which extracts RDF triplets from compatible pages, in a wide variety of RDF syntaxes.
 Any23 is a Data Format that is intended to convert HTML from a site (or file) into rdf.
 
 
@@ -27,7 +28,7 @@ The Any23 dataformat supports 5 options, which are listed below.
 |===
 // dataformat options: END
 // spring-boot-auto-configure options: START
-=== Spring Boot Auto-Configuration
+== Spring Boot Auto-Configuration
 
 When using Spring Boot make sure to use the following Maven dependency to have support for auto configuration:
 
@@ -50,7 +51,7 @@ The component supports 5 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.dataformat.any23.base-u-r-i* | The URI to use as base for building RDF entities if only relative paths are provided. |  | String
-| *camel.dataformat.any23.configurations* | Configurations for Apache Any23 as key-value pairs in order to customize the extraction process. The list of supported parameters can be found here. If not provided, a default configuration is used. The option is a java.util.Map<java.lang.String,java.lang.String> type. |  | String
+| *camel.dataformat.any23.configurations* | Configurations for Apache Any23 as key-value pairs in order to customize the extraction process. The list of supported parameters can be found here. If not provided, a default configuration is used. |  | Map
 | *camel.dataformat.any23.content-type-header* | Whether the data format should set the Content-Type header with the type 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.any23.enabled* | Whether to enable auto configuration of the any23 data format. This is enabled by default. |  | Boolean
 | *camel.dataformat.any23.extractors* | List of Any23 extractors to be used in the unmarshal operation. A list of the available extractors can be found here here. If not provided, all the available extractors are used. |  | List
@@ -115,4 +116,4 @@ the download page for the latest versions).
   <artifactId>camel-any23</artifactId>
   <version>x.x.x</version>
 </dependency>
-----------------------------------------
+----------------------------------------
\ No newline at end of file
diff --git a/components/readme.adoc b/components/readme.adoc
index 5043495..1843c35 100644
--- a/components/readme.adoc
+++ b/components/readme.adoc
@@ -902,7 +902,7 @@ Number of Components: 296 in 234 JAR artifacts (0 deprecated)
 == Data Formats
 
 // dataformats: START
-Number of Data Formats: 44 in 36 JAR artifacts (0 deprecated)
+Number of Data Formats: 45 in 37 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DataSetEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DataSetEndpointBuilderFactory.java
index 8adb756..f56d310 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DataSetEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DataSetEndpointBuilderFactory.java
@@ -814,4 +814,4 @@ public interface DataSetEndpointBuilderFactory {
         }
         return new DataSetEndpointBuilderImpl(path);
     }
-}
+}
\ No newline at end of file
diff --git a/docs/components/modules/ROOT/pages/any23-dataformat.adoc b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
index 3f6450c..36d2a84 100644
--- a/docs/components/modules/ROOT/pages/any23-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
@@ -1,11 +1,12 @@
 [[any23-dataformat]]
-== Any23 DataFormat
-Camel Any23 is a DataFormat that uses the Apache Anything To Triples (Any23) library to extract structured data in RDF from a variety of documents on the web. 
+= Any23 DataFormat
+Camel Any23 is a DataFormat that uses the Apache Anything To Triples (Any23) library to extract structured data in RDF from a variety of documents on the web.
 *Available as of Camel version 3.0*
 
-The main functionality of this DataFormat focuses on its Unmarshal method which extracts RDF triplets from compatible pages, in a wide variety of RDF syntaxes.
 
 *Available as of Camel version 3.0*
+
+The main functionality of this DataFormat focuses on its Unmarshal method which extracts RDF triplets from compatible pages, in a wide variety of RDF syntaxes.
 Any23 is a Data Format that is intended to convert HTML from a site (or file) into rdf.
 
 
@@ -27,7 +28,7 @@ The Any23 dataformat supports 5 options, which are listed below.
 |===
 // dataformat options: END
 // spring-boot-auto-configure options: START
-=== Spring Boot Auto-Configuration
+== Spring Boot Auto-Configuration
 
 When using Spring Boot make sure to use the following Maven dependency to have support for auto configuration:
 
@@ -50,7 +51,7 @@ The component supports 5 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.dataformat.any23.base-u-r-i* | The URI to use as base for building RDF entities if only relative paths are provided. |  | String
-| *camel.dataformat.any23.configurations* | Configurations for Apache Any23 as key-value pairs in order to customize the extraction process. The list of supported parameters can be found here. If not provided, a default configuration is used. The option is a java.util.Map<java.lang.String,java.lang.String> type. |  | String
+| *camel.dataformat.any23.configurations* | Configurations for Apache Any23 as key-value pairs in order to customize the extraction process. The list of supported parameters can be found here. If not provided, a default configuration is used. |  | Map
 | *camel.dataformat.any23.content-type-header* | Whether the data format should set the Content-Type header with the type 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.any23.enabled* | Whether to enable auto configuration of the any23 data format. This is enabled by default. |  | Boolean
 | *camel.dataformat.any23.extractors* | List of Any23 extractors to be used in the unmarshal operation. A list of the available extractors can be found here here. If not provided, all the available extractors are used. |  | List
@@ -115,4 +116,4 @@ the download page for the latest versions).
   <artifactId>camel-any23</artifactId>
   <version>x.x.x</version>
 </dependency>
-----------------------------------------
+----------------------------------------
\ No newline at end of file
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml b/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
index 801bc39..3bb59a6 100644
--- a/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
@@ -38,22 +38,6 @@
       <groupId>org.apache.camel</groupId>
       <artifactId>camel-any23</artifactId>
       <version>${project.version}</version>
-      <!--START OF GENERATED CODE-->
-      <exclusions>
-        <exclusion>
-          <groupId>ch.qos.logback</groupId>
-          <artifactId>logback-classic</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>ch.qos.logback</groupId>
-          <artifactId>logback-core</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>commons-logging</groupId>
-          <artifactId>commons-logging</artifactId>
-        </exclusion>
-      </exclusions>
-      <!--END OF GENERATED CODE-->
     </dependency>
     <!--START OF GENERATED CODE-->
     <dependency>
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
index 9086602..80a2e8d 100644
--- a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.dataformat.any23.springboot;
 
 import java.util.List;
+import java.util.Map;
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -40,10 +41,9 @@ public class Any23DataFormatConfiguration
     /**
      * Configurations for Apache Any23 as key-value pairs in order to customize
      * the extraction process. The list of supported parameters can be found
-     * here. If not provided, a default configuration is used. The option is a
-     * java.util.Map<java.lang.String,java.lang.String> type.
+     * here. If not provided, a default configuration is used.
      */
-    private String configurations;
+    private Map<String, String> configurations;
     /**
      * List of Any23 extractors to be used in the unmarshal operation. A list of
      * the available extractors can be found here here. If not provided, all the
@@ -63,11 +63,11 @@ public class Any23DataFormatConfiguration
      */
     private Boolean contentTypeHeader = false;
 
-    public String getConfigurations() {
+    public Map<String, String> getConfigurations() {
         return configurations;
     }
 
-    public void setConfigurations(String configurations) {
+    public void setConfigurations(Map<String, String> configurations) {
         this.configurations = configurations;
     }
 
diff --git a/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml b/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
index 3f1bc85..459033c 100644
--- a/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
+++ b/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
@@ -3767,8 +3767,13 @@
       </dependency>
       <dependency>
         <groupId>org.eclipse.rdf4j</groupId>
-        <artifactId>rdf4j-runtime</artifactId>
-        <version>3.0.0-M1</version>
+        <artifactId>rdf4j-model</artifactId>
+        <version>2.4.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.rdf4j</groupId>
+        <artifactId>rdf4j-rio-api</artifactId>
+        <version>2.4.4</version>
       </dependency>
       <dependency>
         <groupId>org.hamcrest</groupId>


[camel] 14/20: Improve HTTP test. Add Spring XML test.

Posted by ac...@apache.org.
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

commit 64f3273e48e3e552a5e64538bf02ff268f92b9d2
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Sun Aug 4 00:27:11 2019 -0500

    Improve HTTP test.
    Add Spring XML test.
---
 components/camel-any23/pom.xml                     | 11 +++++
 .../dataformat/any23/Any23DataFormatHTTPTest.java  | 12 ++---
 ...TTPTest.java => Any23DataFormatSpringTest.java} | 30 +++++++------
 .../any23/spring/SpringAny23DataFormatTest.xml     | 51 ++++++++++++++++++++++
 .../modules/ROOT/pages/any23-dataformat.adoc       | 11 +++--
 5 files changed, 93 insertions(+), 22 deletions(-)

diff --git a/components/camel-any23/pom.xml b/components/camel-any23/pom.xml
index dcc19fc..9e10141 100644
--- a/components/camel-any23/pom.xml
+++ b/components/camel-any23/pom.xml
@@ -77,5 +77,16 @@
       <groupId>org.eclipse.rdf4j</groupId>
       <artifactId>rdf4j-runtime</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-http</artifactId>
+      <scope>test</scope>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-test-spring</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatHTTPTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatHTTPTest.java
index 086ae00..4a39606 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatHTTPTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatHTTPTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.dataformat.any23;
 
-import java.io.File;
 import java.util.List;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
@@ -33,13 +32,12 @@ public class Any23DataFormatHTTPTest extends CamelTestSupport {
   @Test
   public void test() throws Exception {
     MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
-    //String contenhtml = Any23TestSupport.loadFileAsString(new File("src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html"));
-    //template.sendBody("direct:start", contenhtml);
+    template.sendBody("direct:start", "bar");
     List<Exchange> list = resultEndpoint.getReceivedExchanges();
     for (Exchange exchange : list) {
       Message in = exchange.getIn();
       Model resultingRDF = in.getBody(Model.class);
-      assertEquals(resultingRDF.size(), 28);
+      assertEquals(resultingRDF.size(), 1762);
     }
   }
 
@@ -47,7 +45,11 @@ public class Any23DataFormatHTTPTest extends CamelTestSupport {
   protected RouteBuilder createRouteBuilder() {
     return new RouteBuilder() {
       public void configure() {
-        from("http://dbpedia.org/page/Ecuador").unmarshal().any23(BASEURI).to("mock:result");
+        from("direct:start")
+            .to("http://dbpedia.org/page/Ecuador")
+            .unmarshal()
+            .any23(BASEURI)
+            .to("mock:result");
       }
     };
   }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatHTTPTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatSpringTest.java
similarity index 60%
copy from components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatHTTPTest.java
copy to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatSpringTest.java
index 086ae00..a164a82 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatHTTPTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatSpringTest.java
@@ -16,40 +16,42 @@
  */
 package org.apache.camel.dataformat.any23;
 
-import java.io.File;
+import java.io.InputStream;
 import java.util.List;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
-import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.spring.CamelSpringTestSupport;
+import org.apache.commons.io.IOUtils;
 import org.eclipse.rdf4j.model.Model;
+import org.eclipse.rdf4j.rio.RDFFormat;
+import org.eclipse.rdf4j.rio.Rio;
+import static org.junit.Assert.assertEquals;
 import org.junit.Test;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-public class Any23DataFormatHTTPTest extends CamelTestSupport {
+public class Any23DataFormatSpringTest extends CamelSpringTestSupport {
 
   private final String BASEURI = "http://mock.foo/bar";
 
   @Test
   public void test() throws Exception {
     MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
-    //String contenhtml = Any23TestSupport.loadFileAsString(new File("src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html"));
-    //template.sendBody("direct:start", contenhtml);
+    template.sendBody("direct:start", "bar");
     List<Exchange> list = resultEndpoint.getReceivedExchanges();
     for (Exchange exchange : list) {
       Message in = exchange.getIn();
-      Model resultingRDF = in.getBody(Model.class);
-      assertEquals(resultingRDF.size(), 28);
+      String resultingRDF = in.getBody(String.class);
+      InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
+      Model parse = Rio.parse(toInputStream, BASEURI, RDFFormat.TURTLE);
+      assertEquals(parse.size(), 1);
     }
   }
 
   @Override
-  protected RouteBuilder createRouteBuilder() {
-    return new RouteBuilder() {
-      public void configure() {
-        from("http://dbpedia.org/page/Ecuador").unmarshal().any23(BASEURI).to("mock:result");
-      }
-    };
+  protected AbstractApplicationContext createApplicationContext() {
+    return new ClassPathXmlApplicationContext("org/apache/camel/dataformat/any23/spring/SpringAny23DataFormatTest.xml");
   }
 
 }
diff --git a/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/spring/SpringAny23DataFormatTest.xml b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/spring/SpringAny23DataFormatTest.xml
new file mode 100644
index 0000000..6ef43db
--- /dev/null
+++ b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/spring/SpringAny23DataFormatTest.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+    ">
+
+  <!-- START SNIPPET: e1 -->
+  <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+
+    <dataFormats>
+      <any23 id="any23" baseURI ="http://mock.foo/bar" outputFormat="TURTLE" > 
+        <configurations>
+          <entry>
+            <key>any23.extraction.metadata.nesting</key>
+            <value>off</value>
+          </entry>
+        </configurations>
+        <extractors>html-head-title</extractors>
+      </any23>
+    </dataFormats>
+
+    <route>
+      <from uri="direct:start"/>
+      <to uri="http://microformats.org/2009/08"/>
+      <unmarshal>
+        <custom ref="any23"/>
+      </unmarshal>
+      <to uri="mock:result"/>
+    </route>
+
+  </camelContext>
+  <!-- END SNIPPET: e1 -->
+
+</beans>
\ No newline at end of file
diff --git a/docs/components/modules/ROOT/pages/any23-dataformat.adoc b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
index 5a8b0ad..7e51ad2 100644
--- a/docs/components/modules/ROOT/pages/any23-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
@@ -1,6 +1,11 @@
 [[any23-dataformat]]
 == Any23 DataFormat
-== Any23 DataFormat
+Camel Any23 is a DataFormat that uses the Apache Anything To Triples (Any23) library to extract structured data in RDF from a variety of documents on the web. 
+*Available as of Camel version 3.0*
+
+The main functionality of this DataFormat focuses on its Unmarshal method which extracts RDF triplets from compatible pages, in a wide variety of RDF syntaxes.
+
+
 *Available as of Camel version 3.0*
 Any23 is a Data Format that is intended to convert HTML from a site (or file) into rdf.
 
@@ -62,7 +67,7 @@ An example where the consumer provides some HTML
 
 [source,java]
 ---------------------------------------------------------------------------
-from("file://site/inbox").unmarshal().tidyMarkup().to("file://site/blogs");
+from("direct:start").unmarshal().any23("http://mock.foo/bar").to("mock:result");
 ---------------------------------------------------------------------------
 
 ### Spring XML Example
@@ -99,4 +104,4 @@ the download page for the latest versions).
   <artifactId>camel-tagsoup</artifactId>
   <version>x.x.x</version>
 </dependency>
-----------------------------------------
+----------------------------------------
\ No newline at end of file


[camel] 06/20: Add configuration parameters. Add data format build clauses.

Posted by ac...@apache.org.
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

commit 786f65020dc87484c921b6ae02869e8c520c1c43
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Mon Jun 24 00:29:05 2019 -0500

    Add configuration parameters.
    Add data format build clauses.
---
 bom/camel-bom/pom.xml                              |  10 ++
 .../camel/dataformat/any23/Any23DataFormat.java    | 186 ++++++++++++---------
 .../camel/dataformat/any23/Any23OutputFormat.java  |  30 +---
 .../camel/dataformat/any23/Any23Parameters.java    |  30 ++--
 .../dataformat/any23/Any23DataFormatBasicTest.java | 139 ++++++++-------
 .../org/apache/camel/builder/DataFormatClause.java |  19 ++-
 .../camel/model/dataformat/Any23DataFormat.java    |  80 +++++++--
 .../reifier/dataformat/Any23DataFormatReifier.java |  38 ++---
 .../camel-spring-boot-dependencies/pom.xml         |  10 ++
 9 files changed, 310 insertions(+), 232 deletions(-)

diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index 765ba49..be58ba7 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -78,6 +78,16 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-any23</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-any23-starter</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-api</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
index 12cd8dc..4b581c0 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
@@ -16,24 +16,21 @@
  */
 package org.apache.camel.dataformat.any23;
 
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import org.apache.any23.Any23;
-import org.apache.any23.extractor.ExtractionException;
-import org.apache.any23.http.HTTPClient;
+import org.apache.any23.configuration.DefaultConfiguration;
+import org.apache.any23.configuration.ModifiableConfiguration;
 import org.apache.any23.source.DocumentSource;
-import org.apache.any23.source.HTTPDocumentSource;
 import org.apache.any23.source.StringDocumentSource;
+import org.apache.any23.writer.JSONLDWriter;
+import org.apache.any23.writer.NQuadsWriter;
 import org.apache.any23.writer.NTriplesWriter;
+import org.apache.any23.writer.RDFXMLWriter;
 import org.apache.any23.writer.TripleHandler;
-import org.apache.any23.writer.TripleHandlerException;
+import org.apache.any23.writer.TurtleWriter;
 
-import org.apache.camel.CamelException;
 import org.apache.camel.Exchange;
-import org.apache.camel.NoTypeConversionAvailableException;
-import org.apache.camel.TypeConversionException;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.DataFormatName;
 import org.apache.camel.spi.annotations.Dataformat;
@@ -54,100 +51,133 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
    */
   private static final Logger LOG = LoggerFactory.getLogger(Any23DataFormat.class);
 
-  private Any23Parameters parameters ;
+  private Any23 any23;
+  private Any23OutputFormat format;
+  private ModifiableConfiguration conf;
+  private String[] extractorsList;
 
-  /**
-   * String or Node to return
-   */
-  private Class<?> dataObjectType;
-
-  /**
-   * What is the default output format ?
-   */
-  private String method;
+  private String configurations;
+  private String extractors;
+  private String outputFormat;
+  private String documentIRI;
 
   @Override
   public String getDataFormatName() {
     return "any23";
   }
-  
-  
-  /*protected final void setDefaultParameters () {
-     parameters = new Any23Parameters ();
-  
-  }*/
-  
-  /*public Any23DataFormat (){
-    this.setDefaultParameters();
-  }*/
 
   /**
    * Marshal data. Generate RDF.
    */
   public void marshal(Exchange exchange, Object object, OutputStream outputStream) throws Exception {
-   /*final String payload = ExchangeHelper.convertToMandatoryType(exchange, String.class, object);
-   System.out.print ("payload");
-   System.out.print (payload);
-   
-    Any23 runner = new Any23();*/
-    anytordf( exchange,  object,  outputStream);
-           //  return n3;
-   // throw new CamelException("Under construction");
+    final String payload = ExchangeHelper.convertToMandatoryType(exchange, String.class, object);
+    DocumentSource source = new StringDocumentSource(payload, documentIRI);
+    TripleHandler handler;
+    switch (format) {
+      case NTRIPLES:
+        handler = new NTriplesWriter(outputStream);
+        break;
+      case TURTLE:
+        handler = new TurtleWriter(outputStream);
+        break;
+      case NQUADS:
+        handler = new NQuadsWriter(outputStream);
+        break;
+      case RDFXML:
+        handler = new RDFXMLWriter(outputStream);
+        break;
+      case JSONLD:
+        handler = new JSONLDWriter(outputStream);
+        break;
+      case MODEL:
+        handler = new NTriplesWriter(outputStream);
+        break;
+      default:
+        handler = new NTriplesWriter(outputStream);
+    }
+    any23.extract(source, handler);
   }
 
   /**
    * Unmarshal the data
    */
   public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
-          Any23 runner = new Any23();
-          runner.setHTTPUserAgent("test-user-agent");
-          HTTPClient httpClient = runner.getHTTPClient();
-          DocumentSource source = new HTTPDocumentSource(
-                  httpClient,
-                  "http://dbpedia.org/page/Ecuador");
-        //  System.out.print("#######");
-        //  System.out.print(source.getContentType());
-          ByteArrayOutputStream out = new ByteArrayOutputStream();
-          TripleHandler handler = new NTriplesWriter(out);
-           
-              runner.extract(source, handler);
-        
-              
-             handler.close();
-            
-          
-             String n3 = out.toString("UTF-8");
-            
-           //  System.out.print (n3);
-             return n3;
-     //throw new CamelException("Under construction");
-  }
-  
-  private void anytordf (final Exchange exchange, Object object, OutputStream outputStream) throws IOException, ExtractionException, TypeConversionException, NoTypeConversionAvailableException, TripleHandlerException{
-    final String payload = ExchangeHelper.convertToMandatoryType(exchange, String.class, object);
-    System.out.println ("PAYLOAD");
-    System.out.println (payload);
-    DocumentSource source = new StringDocumentSource(payload, "http://host.com/service");
-    Any23 runner = new Any23();
-    ByteArrayOutputStream out = new ByteArrayOutputStream();
-    this.parameters = new Any23Parameters (out);
-    runner.extract(source, this.parameters.getTripleHandlerOutput());
-    this.parameters.getTripleHandlerOutput().close();
-   // out.toString("UTF-8").get
-   // out.toString("UTF-8");
-   System.out.println("SALIDA");
-    System.out.println(out.toString("UTF-8"));
-    outputStream.write(out.toByteArray());
-    
+    //TODO
+    return null;
   }
 
   @Override
   protected void doStart() throws Exception {
-    // noop
+    conf = DefaultConfiguration.copy();
+    String[] newConfigs = configurations.split(";");
+    for (String con : newConfigs) {
+      String[] vals = con.split("=");
+      conf.setProperty(vals[0], vals[0]);
+    }
+    extractorsList = extractors.split(";");
+    any23 = new Any23(conf, extractors);
+    format = Any23OutputFormat.valueOf(outputFormat);
   }
 
   @Override
   protected void doStop() throws Exception {
     // noop
   }
+
+  public Any23 getAny23() {
+    return any23;
+  }
+
+  public void setAny23(Any23 any23) {
+    this.any23 = any23;
+  }
+
+  public Any23OutputFormat getFormat() {
+    return format;
+  }
+
+  public void setFormat(Any23OutputFormat format) {
+    this.format = format;
+  }
+
+  public ModifiableConfiguration getConf() {
+    return conf;
+  }
+
+  public void setConf(ModifiableConfiguration conf) {
+    this.conf = conf;
+  }
+
+  public String[] getExtractorsList() {
+    return extractorsList;
+  }
+
+  public void setExtractorsList(String[] extractorsList) {
+    this.extractorsList = extractorsList;
+  }
+
+  public String getConfigurations() {
+    return configurations;
+  }
+
+  public void setConfigurations(String configurations) {
+    this.configurations = configurations;
+  }
+
+  public String getExtractors() {
+    return extractors;
+  }
+
+  public void setExtractors(String extractors) {
+    this.extractors = extractors;
+  }
+
+  public String getOutputFormat() {
+    return outputFormat;
+  }
+
+  public void setOutputFormat(String outputFormat) {
+    this.outputFormat = outputFormat;
+  }
+
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java
similarity index 52%
copy from core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
copy to components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java
index af3596a..0ceddc5 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java
@@ -14,30 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.model.dataformat;
+package org.apache.camel.dataformat.any23;
 
-
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-
-import org.apache.camel.model.DataFormatDefinition;
-import org.apache.camel.spi.Metadata;
-
-/**
- * Any23 data format is used for parsing data to RDF.
- */
-@Metadata(firstVersion = "1.0.0", label = "dataformat,transformation", title = "Any23")
-@XmlRootElement(name = "any23")
-@XmlAccessorType(XmlAccessType.FIELD)
-public class Any23DataFormat extends DataFormatDefinition {
-   
-    public Any23DataFormat() {
-        super("any23");
-        
-    }
-
-}
\ No newline at end of file
+public enum Any23OutputFormat {
+  NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON, MODEL
+}
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23Parameters.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23Parameters.java
index d15705a..cb9536c 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23Parameters.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23Parameters.java
@@ -14,23 +14,23 @@ import org.apache.any23.writer.TripleHandler;
  * @author joe
  */
 public class Any23Parameters {
-  
-private  ByteArrayOutputStream OUT;
+
+  private ByteArrayOutputStream OUT;
 //public static  final TripleHandler TRIPLEHANDLER ;
 
-private TripleHandler triplehandler ;
+  private TripleHandler triplehandler;
 
-public TripleHandler getTripleHandlerOutput (){
- return triplehandler;
-}
+  public TripleHandler getTripleHandlerOutput() {
+    return triplehandler;
+  }
+
+  public void setTripleHandlerOutput(TripleHandler triplehandler) {
+    this.triplehandler = triplehandler;
+  }
+
+  public Any23Parameters(ByteArrayOutputStream out) {
+    this.OUT = out;
+    this.triplehandler = new NTriplesWriter(out);
+  }
 
-public void setTripleHandlerOutput (TripleHandler triplehandler ){
-this.triplehandler = triplehandler;
-}
- 
-public Any23Parameters (ByteArrayOutputStream out) {
- this.OUT = out;
- this.triplehandler = new NTriplesWriter(out);
-}
-  
 }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
index fe83fc1..815fc4a 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
@@ -16,11 +16,7 @@
  */
 package org.apache.camel.dataformat.any23;
 
-import java.io.File;
 import java.util.List;
-
-import org.w3c.dom.Node;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
@@ -28,80 +24,77 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
-
 public class Any23DataFormatBasicTest extends CamelTestSupport {
-   
-    @Test
-    public void testUnMarshalToStringOfXml() throws Exception {
-        MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
-        //resultEndpoint.expectedMessageCount(2);
 
-      //  String badHtml = TidyMarkupTestSupport.loadFileAsString(new File(
-      //          "src/test/resources/org/apache/camel/dataformat/any23/testfile1.html"));
-     //   String evilHtml = TidyMarkupTestSupport.loadFileAsString(new File(
-      //          "src/test/resources/org/apache/camel/dataformat/any23/testfile2-evilHtml.html"));
-      
-      String contenhtml = "<div id='hcard-JOSE-LUIS-SEGARRA-FLORES' class='vcard'> " +
-" <a class='url fn n' href='https://www.youtube.com/watch?v=kg1BljLu9YY'>  <span class='given-name'>JOSE</span> " +
-"  <span class='additional-name'>LUIS</span> " +
-"  <span class='family-name'>SEGARRA FLORES</span> " +
-"</a> " +
-" <div class='org'>TransExpress</div> " +
-" <a class='email' href='mailto:joesega7@gmail.com'>joesega7@gmail.com</a> " +
-" <div class='adr'> " +
-"  <div class='street-address'>7801 NW 37th Street Doral,  FL 33195-6503</div> " +
-"  <span class='locality'>Doral</span> " +
-",  " +
-"  <span class='region'>Florida</span> " +
-",  " +
-"  <span class='postal-code'>33195-6503</span> " +
-" " +
-"  <span class='country-name'>Estados Unidos</span> " +
-" " +
-" </div> " +
-" <div class='tel'>3055920839</div> " +
-"<p style='font-size:smaller;'>This <a href='http://microformats.org/wiki/hcard'>hCard</a> created with the <a href='http://microformats.org/code/hcard/creator'>hCard creator</a>.</p> " +
-"</div>";
-      
-      final String content = "<span class='vcard'> " +
-"  <span class='fn'>L'Amourita Pizza</span> " +
-"   Located at " +
-"  <span class='adr'> " +
-"    <span class='street-address'>123 Main St</span>, " +
-"    <span class='locality'>Albequerque</span>, " +
-"    <span class='region'>NM</span>. " +
-"  </span> " +
-"  <a href='http://pizza.example.com' class='url'>http://pizza.example.com</a> " +
-"</span>   ";
+  @Test
+  public void testUnMarshalToStringOfXml() throws Exception {
+    MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
+    //resultEndpoint.expectedMessageCount(2);
+
+    //  String badHtml = TidyMarkupTestSupport.loadFileAsString(new File(
+    //          "src/test/resources/org/apache/camel/dataformat/any23/testfile1.html"));
+    //   String evilHtml = TidyMarkupTestSupport.loadFileAsString(new File(
+    //          "src/test/resources/org/apache/camel/dataformat/any23/testfile2-evilHtml.html"));
+    String contenhtml = "<div id='hcard-JOSE-LUIS-SEGARRA-FLORES' class='vcard'> "
+        + " <a class='url fn n' href='https://www.youtube.com/watch?v=kg1BljLu9YY'>  <span class='given-name'>JOSE</span> "
+        + "  <span class='additional-name'>LUIS</span> "
+        + "  <span class='family-name'>SEGARRA FLORES</span> "
+        + "</a> "
+        + " <div class='org'>TransExpress</div> "
+        + " <a class='email' href='mailto:joesega7@gmail.com'>joesega7@gmail.com</a> "
+        + " <div class='adr'> "
+        + "  <div class='street-address'>7801 NW 37th Street Doral,  FL 33195-6503</div> "
+        + "  <span class='locality'>Doral</span> "
+        + ",  "
+        + "  <span class='region'>Florida</span> "
+        + ",  "
+        + "  <span class='postal-code'>33195-6503</span> "
+        + " "
+        + "  <span class='country-name'>Estados Unidos</span> "
+        + " "
+        + " </div> "
+        + " <div class='tel'>3055920839</div> "
+        + "<p style='font-size:smaller;'>This <a href='http://microformats.org/wiki/hcard'>hCard</a> created with the <a href='http://microformats.org/code/hcard/creator'>hCard creator</a>.</p> "
+        + "</div>";
 
-        template.sendBody("direct:start", contenhtml);
-      //  template.sendBody("direct:start", evilHtml);
+    final String content = "<span class='vcard'> "
+        + "  <span class='fn'>L'Amourita Pizza</span> "
+        + "   Located at "
+        + "  <span class='adr'> "
+        + "    <span class='street-address'>123 Main St</span>, "
+        + "    <span class='locality'>Albequerque</span>, "
+        + "    <span class='region'>NM</span>. "
+        + "  </span> "
+        + "  <a href='http://pizza.example.com' class='url'>http://pizza.example.com</a> "
+        + "</span>   ";
 
-        //resultEndpoint.assertIsSatisfied(); 
-        List<Exchange> list = resultEndpoint.getReceivedExchanges();
-         System.out.print(list.size());
-        for (Exchange exchange : list) {
-               
-                Message in = exchange.getIn();
-              //  Node tidyMarkup = in.getBody(Node.class);
-                System.out.print(in.getBody(String.class));
-               log.info("Received " + in.getBody(String.class));
-               // assertNotNull("Should be able to convert received body to a string", tidyMarkup);
-                
-            
-        }
-    } 
+    template.sendBody("direct:start", contenhtml);
+    //  template.sendBody("direct:start", evilHtml);
+
+    //resultEndpoint.assertIsSatisfied(); 
+    List<Exchange> list = resultEndpoint.getReceivedExchanges();
+    System.out.print(list.size());
+    for (Exchange exchange : list) {
+
+      Message in = exchange.getIn();
+      //  Node tidyMarkup = in.getBody(Node.class);
+      System.out.print(in.getBody(String.class));
+      log.info("Received " + in.getBody(String.class));
+      // assertNotNull("Should be able to convert received body to a string", tidyMarkup);
 
-    @Override
-    protected RouteBuilder createRouteBuilder() {
-        return new RouteBuilder() {
-            public void configure() { 
-              from("direct:start").marshal().any23().to("mock:result");
-              //from("direct:start").unmarshal().any23().to("mock:result");
-              //  from("direct:start").marshal().tidyMarkup();
-              //  from("direct:start").unmarshal().tidyMarkup().to("mock:result");
-            }
-        };
     }
+  }
+
+  @Override
+  protected RouteBuilder createRouteBuilder() {
+    return new RouteBuilder() {
+      public void configure() {
+        from("direct:start").marshal().any23("http://pizza.example.com").to("mock:result");
+        //from("direct:start").unmarshal().any23().to("mock:result");
+        //  from("direct:start").marshal().tidyMarkup();
+        //  from("direct:start").unmarshal().tidyMarkup().to("mock:result");
+      }
+    };
+  }
 
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java b/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
index 54a7be6..b14d1d4 100644
--- a/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
+++ b/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
@@ -86,13 +86,24 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
 
 
 
-     /**
+    /**
      * Uses the Any23 data format
      */
-    public T any23() {
-        return dataFormat(new Any23DataFormat());
-    }
+  public T any23(String baseuri) {
+    return dataFormat(new Any23DataFormat(baseuri));
+  }
+
+  public T any23(String baseuri, String outputformat) {
+    return dataFormat(new Any23DataFormat(baseuri, outputformat));
+  }
+
+  public T any23(String baseuri, String outputformat, String configurations) {
+    return dataFormat(new Any23DataFormat(baseuri, outputformat, configurations));
+  }
 
+  public T any23(String baseuri, String outputformat, String configurations, String extractors) {
+    return dataFormat(new Any23DataFormat(baseuri, outputformat, configurations, extractors));
+  }
 
     /**
      * Uses the Avro data format
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
index af3596a..ecfde71 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
@@ -16,14 +16,10 @@
  */
 package org.apache.camel.model.dataformat;
 
-
-
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.Metadata;
 
@@ -34,10 +30,74 @@ import org.apache.camel.spi.Metadata;
 @XmlRootElement(name = "any23")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class Any23DataFormat extends DataFormatDefinition {
-   
-    public Any23DataFormat() {
-        super("any23");
-        
-    }
 
-}
\ No newline at end of file
+  @XmlAttribute
+  @Metadata(defaultValue = "MODEL")
+  private String outputFormat;
+  @XmlAttribute
+  private String configurations;
+  @XmlAttribute
+  private String extractors;
+  @XmlAttribute
+  private String baseuri;
+
+  public Any23DataFormat() {
+    super("any23");
+  }
+
+  public Any23DataFormat(String baseuri) {
+    this();
+    this.baseuri = baseuri;
+  }
+
+  public Any23DataFormat(String baseuri, String outputFormat) {
+    this(baseuri);
+    this.outputFormat = outputFormat;
+  }
+
+  public Any23DataFormat(String baseuri, String outputFormat, String configurations) {
+    this(baseuri, outputFormat);
+    this.outputFormat = outputFormat;
+    this.configurations = configurations;
+  }
+
+  public Any23DataFormat(String baseuri, String outputFormat, String configurations, String extractors) {
+    this(baseuri, outputFormat, configurations);
+    this.outputFormat = outputFormat;
+    this.configurations = configurations;
+    this.extractors = extractors;
+  }
+
+  public String getOutputFormat() {
+    return outputFormat;
+  }
+
+  public void setOutputFormat(String outputFormat) {
+    this.outputFormat = outputFormat;
+  }
+
+  public String getConfigurations() {
+    return configurations;
+  }
+
+  public void setConfigurations(String configurations) {
+    this.configurations = configurations;
+  }
+
+  public String getExtractors() {
+    return extractors;
+  }
+
+  public void setExtractors(String extractors) {
+    this.extractors = extractors;
+  }
+
+  public String getBaseuri() {
+    return baseuri;
+  }
+
+  public void setBaseuri(String baseuri) {
+    this.baseuri = baseuri;
+  }
+
+}
diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
index ae0ea05..72adb99 100644
--- a/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
+++ b/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
@@ -17,38 +17,24 @@
 package org.apache.camel.reifier.dataformat;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.model.dataformat.Any23DataFormat;
 import org.apache.camel.spi.DataFormat;
 
 public class Any23DataFormatReifier extends DataFormatReifier<Any23DataFormat> {
 
-    public Any23DataFormatReifier(DataFormatDefinition definition) {
-        super((Any23DataFormat) definition);
-    }
+  public Any23DataFormatReifier(DataFormatDefinition definition) {
+    super((Any23DataFormat) definition);
+  }
 
-   /* @Override
-    protected DataFormat doCreateDataFormat(CamelContext camelContext) {
-        if (definition.getDataObjectType() == null && definition.getDataObjectTypeName() != null) {
-            try {
-                definition.setDataObjectType(camelContext.getClassResolver().resolveMandatoryClass(definition.getDataObjectTypeName()));
-            } catch (ClassNotFoundException e) {
-                throw RuntimeCamelException.wrapRuntimeCamelException(e);
-            }
-        }
-
-        return super.doCreateDataFormat(camelContext);
-    }*/
-
-    @Override
-    protected void configureDataFormat(DataFormat dataFormat, CamelContext camelContext) {
-        /*if (definition.getDataObjectType() != null) {
-            setProperty(camelContext, dataFormat, "dataObjectType", definition.getDataObjectType());
-        }
-        if (definition.getOmitXmlDeclaration() != null) {
-            setProperty(camelContext, dataFormat, "omitXmlDeclaration", definition.getOmitXmlDeclaration());
-        }*/
-    }
+  @Override
+  protected void configureDataFormat(DataFormat dataFormat, CamelContext camelContext) {
+//    if (definition.getDataObjectType() != null) {
+//      setProperty(camelContext, dataFormat, "dataObjectType", definition.getDataObjectType());
+//    }
+//    if (definition.getOmitXmlDeclaration() != null) {
+//      setProperty(camelContext, dataFormat, "omitXmlDeclaration", definition.getOmitXmlDeclaration());
+//    }
+  }
 
 }
diff --git a/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml b/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
index e353bea..3764ce2 100644
--- a/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
+++ b/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
@@ -303,6 +303,16 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-any23</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-any23-starter</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-api</artifactId>
         <version>${project.version}</version>
       </dependency>


[camel] 08/20: Fix marshal test

Posted by ac...@apache.org.
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

commit 7f954bd44c4353327e3d86398368785773b6bad9
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Tue Jul 2 00:18:32 2019 -0500

    Fix marshal test
---
 .../org/apache/camel/dataformat/any23/Any23DataFormat.java |  1 +
 .../camel/dataformat/any23/Any23DataFormatBasicTest.java   | 14 +++++++++-----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
index 843a3e4..0d2122c 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
@@ -96,6 +96,7 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
         handler = new NTriplesWriter(outputStream);
     }
     any23.extract(source, handler);
+    handler.close();
   }
 
   /**
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
index a2e6353..9f7a465 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
@@ -17,18 +17,23 @@
 package org.apache.camel.dataformat.any23;
 
 import java.io.File;
+import java.io.InputStream;
 import java.util.List;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.commons.io.IOUtils;
+import org.eclipse.rdf4j.model.Model;
+import org.eclipse.rdf4j.rio.RDFFormat;
+import org.eclipse.rdf4j.rio.Rio;
 import org.junit.Test;
 
 public class Any23DataFormatBasicTest extends CamelTestSupport {
 
   @Test
-  public void testUnMarshalToStringOfXml() throws Exception {
+  public void testMarshalToRDFXMLFromHTML() throws Exception {
     MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
     String contenhtml = Any23TestSupport.loadFileAsString(new File("src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html"));
     template.sendBody("direct:start", contenhtml);
@@ -36,10 +41,9 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
     for (Exchange exchange : list) {
       Message in = exchange.getIn();
       String resultingRDF = in.getBody(String.class);
-      System.out.println(resultingRDF);
-      //InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
-      //Model parse = Rio.parse(toInputStream, "http://mock.foo/bar", RDFFormat.RDFXML);
-      //assertEquals(parse.size(), 10);
+      InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
+      Model parse = Rio.parse(toInputStream, "http://mock.foo/bar", RDFFormat.RDFXML);
+      assertEquals(parse.size(), 28);
     }
   }
 


[camel] 13/20: Improve documentation

Posted by ac...@apache.org.
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

commit e0cbc3123f6969d43fe15e9070892cf5ebeadcd9
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Mon Jul 29 01:14:33 2019 -0500

    Improve documentation
---
 components/camel-any23/src/main/docs/any23-dataformat.adoc   | 11 ++++++++---
 .../camel/dataformat/any23/Any23DataFormatDefaultTest.java   |  4 ----
 ...taFormatDefaultTest.java => Any23DataFormatHTTPTest.java} | 12 ++++--------
 3 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/components/camel-any23/src/main/docs/any23-dataformat.adoc b/components/camel-any23/src/main/docs/any23-dataformat.adoc
index 5a8b0ad..7e51ad2 100644
--- a/components/camel-any23/src/main/docs/any23-dataformat.adoc
+++ b/components/camel-any23/src/main/docs/any23-dataformat.adoc
@@ -1,6 +1,11 @@
 [[any23-dataformat]]
 == Any23 DataFormat
-== Any23 DataFormat
+Camel Any23 is a DataFormat that uses the Apache Anything To Triples (Any23) library to extract structured data in RDF from a variety of documents on the web. 
+*Available as of Camel version 3.0*
+
+The main functionality of this DataFormat focuses on its Unmarshal method which extracts RDF triplets from compatible pages, in a wide variety of RDF syntaxes.
+
+
 *Available as of Camel version 3.0*
 Any23 is a Data Format that is intended to convert HTML from a site (or file) into rdf.
 
@@ -62,7 +67,7 @@ An example where the consumer provides some HTML
 
 [source,java]
 ---------------------------------------------------------------------------
-from("file://site/inbox").unmarshal().tidyMarkup().to("file://site/blogs");
+from("direct:start").unmarshal().any23("http://mock.foo/bar").to("mock:result");
 ---------------------------------------------------------------------------
 
 ### Spring XML Example
@@ -99,4 +104,4 @@ the download page for the latest versions).
   <artifactId>camel-tagsoup</artifactId>
   <version>x.x.x</version>
 </dependency>
-----------------------------------------
+----------------------------------------
\ No newline at end of file
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
index fee62a5..1bfd89b 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
@@ -17,17 +17,13 @@
 package org.apache.camel.dataformat.any23;
 
 import java.io.File;
-import java.io.InputStream;
 import java.util.List;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit4.CamelTestSupport;
-import org.apache.commons.io.IOUtils;
 import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.rio.RDFFormat;
-import org.eclipse.rdf4j.rio.Rio;
 import org.junit.Test;
 
 public class Any23DataFormatDefaultTest extends CamelTestSupport {
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatHTTPTest.java
similarity index 78%
copy from components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
copy to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatHTTPTest.java
index fee62a5..086ae00 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatHTTPTest.java
@@ -17,28 +17,24 @@
 package org.apache.camel.dataformat.any23;
 
 import java.io.File;
-import java.io.InputStream;
 import java.util.List;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit4.CamelTestSupport;
-import org.apache.commons.io.IOUtils;
 import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.rio.RDFFormat;
-import org.eclipse.rdf4j.rio.Rio;
 import org.junit.Test;
 
-public class Any23DataFormatDefaultTest extends CamelTestSupport {
+public class Any23DataFormatHTTPTest extends CamelTestSupport {
 
   private final String BASEURI = "http://mock.foo/bar";
 
   @Test
   public void test() throws Exception {
     MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
-    String contenhtml = Any23TestSupport.loadFileAsString(new File("src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html"));
-    template.sendBody("direct:start", contenhtml);
+    //String contenhtml = Any23TestSupport.loadFileAsString(new File("src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html"));
+    //template.sendBody("direct:start", contenhtml);
     List<Exchange> list = resultEndpoint.getReceivedExchanges();
     for (Exchange exchange : list) {
       Message in = exchange.getIn();
@@ -51,7 +47,7 @@ public class Any23DataFormatDefaultTest extends CamelTestSupport {
   protected RouteBuilder createRouteBuilder() {
     return new RouteBuilder() {
       public void configure() {
-        from("direct:start").unmarshal().any23(BASEURI).to("mock:result");
+        from("http://dbpedia.org/page/Ecuador").unmarshal().any23(BASEURI).to("mock:result");
       }
     };
   }


[camel] 15/20: Improve documentation

Posted by ac...@apache.org.
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

commit f9abcdda1e3224f728354788c33ef251cf75174c
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Sun Aug 4 18:18:15 2019 -0500

    Improve documentation
---
 .../src/main/docs/any23-dataformat.adoc            | 51 +++++++++++++---------
 .../camel/model/dataformat/Any23DataFormat.java    | 21 ++++++++-
 .../modules/ROOT/pages/any23-dataformat.adoc       | 51 +++++++++++++---------
 .../springboot/Any23DataFormatConfiguration.java   | 15 +++++++
 4 files changed, 97 insertions(+), 41 deletions(-)

diff --git a/components/camel-any23/src/main/docs/any23-dataformat.adoc b/components/camel-any23/src/main/docs/any23-dataformat.adoc
index 7e51ad2..3f6450c 100644
--- a/components/camel-any23/src/main/docs/any23-dataformat.adoc
+++ b/components/camel-any23/src/main/docs/any23-dataformat.adoc
@@ -5,7 +5,6 @@ Camel Any23 is a DataFormat that uses the Apache Anything To Triples (Any23) lib
 
 The main functionality of this DataFormat focuses on its Unmarshal method which extracts RDF triplets from compatible pages, in a wide variety of RDF syntaxes.
 
-
 *Available as of Camel version 3.0*
 Any23 is a Data Format that is intended to convert HTML from a site (or file) into rdf.
 
@@ -20,10 +19,10 @@ The Any23 dataformat supports 5 options, which are listed below.
 [width="100%",cols="2s,1m,1m,6",options="header"]
 |===
 | Name | Default | Java Type | Description
-| outputFormat | RDF4JMODEL | Any23Type | 
-| configurations |  | Map | 
-| extractors |  | List | 
-| baseURI |  | String | 
+| outputFormat | RDF4JMODEL | Any23Type | What RDF syntax to unmarshal as, can be: NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON, RDF4JMODEL. It is by default: RDF4JMODEL.
+| configurations |  | Map | Configurations for Apache Any23 as key-value pairs in order to customize the extraction process. The list of supported parameters can be found here. If not provided, a default configuration is used.
+| extractors |  | List | List of Any23 extractors to be used in the unmarshal operation. A list of the available extractors can be found here here. If not provided, all the available extractors are used.
+| baseURI |  | String | The URI to use as base for building RDF entities if only relative paths are provided.
 | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type 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.
 |===
 // dataformat options: END
@@ -50,11 +49,11 @@ The component supports 5 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.dataformat.any23.base-u-r-i* |  |  | String
-| *camel.dataformat.any23.configurations* |  |  | String
+| *camel.dataformat.any23.base-u-r-i* | The URI to use as base for building RDF entities if only relative paths are provided. |  | String
+| *camel.dataformat.any23.configurations* | Configurations for Apache Any23 as key-value pairs in order to customize the extraction process. The list of supported parameters can be found here. If not provided, a default configuration is used. The option is a java.util.Map<java.lang.String,java.lang.String> type. |  | String
 | *camel.dataformat.any23.content-type-header* | Whether the data format should set the Content-Type header with the type 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.any23.enabled* | Whether to enable auto configuration of the any23 data format. This is enabled by default. |  | Boolean
-| *camel.dataformat.any23.extractors* |  |  | List
+| *camel.dataformat.any23.extractors* | List of Any23 extractors to be used in the unmarshal operation. A list of the available extractors can be found here here. If not provided, all the available extractors are used. |  | List
 |===
 // spring-boot-auto-configure options: END
 
@@ -78,20 +77,32 @@ to unmarshal using Spring
 [source,java]
 -----------------------------------------------------------------------
 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
-  <route>
-    <from uri="file://site/inbox"/>
-    <unmarshal>
-      <tidyMarkup/>
-    </unmarshal>
-    <to uri="file://site/blogs"/>
-  </route>
-</camelContext>
+    <dataFormats>
+      <any23 id="any23" baseURI ="http://mock.foo/bar" outputFormat="TURTLE" > 
+        <configurations>
+          <entry>
+            <key>any23.extraction.metadata.nesting</key>
+            <value>off</value>
+          </entry>
+        </configurations>
+        <extractors>html-head-title</extractors>
+      </any23>
+    </dataFormats>
+    <route>
+      <from uri="direct:start"/>
+      <to uri="http://microformats.org/2009/08"/>
+      <unmarshal>
+        <custom ref="any23"/>
+      </unmarshal>
+      <to uri="mock:result"/>
+    </route>
+  </camelContext>
 -----------------------------------------------------------------------
 
 ### Dependencies
 
-To use TidyMarkup in your camel routes you need to add the a dependency
-on *camel-tagsoup* which implements this data format.
+To use Any23 in your camel routes you need to add the a dependency
+on *camel-any23* which implements this data format.
 
 If you use maven you could just add the following to your pom.xml,
 substituting the version number for the latest & greatest release (see
@@ -101,7 +112,7 @@ the download page for the latest versions).
 ----------------------------------------
 <dependency>
   <groupId>org.apache.camel</groupId>
-  <artifactId>camel-tagsoup</artifactId>
+  <artifactId>camel-any23</artifactId>
   <version>x.x.x</version>
 </dependency>
-----------------------------------------
\ No newline at end of file
+----------------------------------------
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
index 0560836..1a52aee 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
@@ -75,6 +75,10 @@ public class Any23DataFormat extends DataFormatDefinition {
     return outputFormat;
   }
 
+  /**
+   * What RDF syntax to unmarshal as, can be: NTRIPLES, TURTLE, NQUADS, RDFXML,
+   * JSONLD, RDFJSON, RDF4JMODEL. It is by default: RDF4JMODEL.
+   */
   public void setOutputFormat(Any23Type outputFormat) {
     this.outputFormat = outputFormat;
   }
@@ -83,6 +87,12 @@ public class Any23DataFormat extends DataFormatDefinition {
     return configurations;
   }
 
+  /**
+   * Configurations for Apache Any23 as key-value pairs in order to customize
+   * the extraction process. The list of supported parameters can be found
+   * <a href="https://github.com/apache/any23/blob/master/api/src/main/resources/default-configuration.properties">here</a>.
+   * If not provided, a default configuration is used.
+   */
   public void setConfigurations(Map<String, String> configurations) {
     this.configurations = configurations;
   }
@@ -91,6 +101,12 @@ public class Any23DataFormat extends DataFormatDefinition {
     return extractors;
   }
 
+  /**
+   * List of Any23 extractors to be used in the unmarshal operation. A list of
+   * the available extractors can be found here
+   * <a href="https://any23.apache.org/getting-started.html">here</a>. If not
+   * provided, all the available extractors are used.
+   */
   public void setExtractors(List<String> extractors) {
     this.extractors = extractors;
   }
@@ -99,9 +115,12 @@ public class Any23DataFormat extends DataFormatDefinition {
     return baseURI;
   }
 
+  /**
+   * The URI to use as base for building RDF entities if only relative paths are
+   * provided.
+   */
   public void setBaseURI(String baseURI) {
     this.baseURI = baseURI;
   }
 
-  
 }
diff --git a/docs/components/modules/ROOT/pages/any23-dataformat.adoc b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
index 7e51ad2..3f6450c 100644
--- a/docs/components/modules/ROOT/pages/any23-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
@@ -5,7 +5,6 @@ Camel Any23 is a DataFormat that uses the Apache Anything To Triples (Any23) lib
 
 The main functionality of this DataFormat focuses on its Unmarshal method which extracts RDF triplets from compatible pages, in a wide variety of RDF syntaxes.
 
-
 *Available as of Camel version 3.0*
 Any23 is a Data Format that is intended to convert HTML from a site (or file) into rdf.
 
@@ -20,10 +19,10 @@ The Any23 dataformat supports 5 options, which are listed below.
 [width="100%",cols="2s,1m,1m,6",options="header"]
 |===
 | Name | Default | Java Type | Description
-| outputFormat | RDF4JMODEL | Any23Type | 
-| configurations |  | Map | 
-| extractors |  | List | 
-| baseURI |  | String | 
+| outputFormat | RDF4JMODEL | Any23Type | What RDF syntax to unmarshal as, can be: NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON, RDF4JMODEL. It is by default: RDF4JMODEL.
+| configurations |  | Map | Configurations for Apache Any23 as key-value pairs in order to customize the extraction process. The list of supported parameters can be found here. If not provided, a default configuration is used.
+| extractors |  | List | List of Any23 extractors to be used in the unmarshal operation. A list of the available extractors can be found here here. If not provided, all the available extractors are used.
+| baseURI |  | String | The URI to use as base for building RDF entities if only relative paths are provided.
 | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type 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.
 |===
 // dataformat options: END
@@ -50,11 +49,11 @@ The component supports 5 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.dataformat.any23.base-u-r-i* |  |  | String
-| *camel.dataformat.any23.configurations* |  |  | String
+| *camel.dataformat.any23.base-u-r-i* | The URI to use as base for building RDF entities if only relative paths are provided. |  | String
+| *camel.dataformat.any23.configurations* | Configurations for Apache Any23 as key-value pairs in order to customize the extraction process. The list of supported parameters can be found here. If not provided, a default configuration is used. The option is a java.util.Map<java.lang.String,java.lang.String> type. |  | String
 | *camel.dataformat.any23.content-type-header* | Whether the data format should set the Content-Type header with the type 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.any23.enabled* | Whether to enable auto configuration of the any23 data format. This is enabled by default. |  | Boolean
-| *camel.dataformat.any23.extractors* |  |  | List
+| *camel.dataformat.any23.extractors* | List of Any23 extractors to be used in the unmarshal operation. A list of the available extractors can be found here here. If not provided, all the available extractors are used. |  | List
 |===
 // spring-boot-auto-configure options: END
 
@@ -78,20 +77,32 @@ to unmarshal using Spring
 [source,java]
 -----------------------------------------------------------------------
 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
-  <route>
-    <from uri="file://site/inbox"/>
-    <unmarshal>
-      <tidyMarkup/>
-    </unmarshal>
-    <to uri="file://site/blogs"/>
-  </route>
-</camelContext>
+    <dataFormats>
+      <any23 id="any23" baseURI ="http://mock.foo/bar" outputFormat="TURTLE" > 
+        <configurations>
+          <entry>
+            <key>any23.extraction.metadata.nesting</key>
+            <value>off</value>
+          </entry>
+        </configurations>
+        <extractors>html-head-title</extractors>
+      </any23>
+    </dataFormats>
+    <route>
+      <from uri="direct:start"/>
+      <to uri="http://microformats.org/2009/08"/>
+      <unmarshal>
+        <custom ref="any23"/>
+      </unmarshal>
+      <to uri="mock:result"/>
+    </route>
+  </camelContext>
 -----------------------------------------------------------------------
 
 ### Dependencies
 
-To use TidyMarkup in your camel routes you need to add the a dependency
-on *camel-tagsoup* which implements this data format.
+To use Any23 in your camel routes you need to add the a dependency
+on *camel-any23* which implements this data format.
 
 If you use maven you could just add the following to your pom.xml,
 substituting the version number for the latest & greatest release (see
@@ -101,7 +112,7 @@ the download page for the latest versions).
 ----------------------------------------
 <dependency>
   <groupId>org.apache.camel</groupId>
-  <artifactId>camel-tagsoup</artifactId>
+  <artifactId>camel-any23</artifactId>
   <version>x.x.x</version>
 </dependency>
-----------------------------------------
\ No newline at end of file
+----------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
index 058c337..9086602 100644
--- a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
@@ -37,8 +37,23 @@ public class Any23DataFormatConfiguration
      * enabled by default.
      */
     private Boolean enabled;
+    /**
+     * Configurations for Apache Any23 as key-value pairs in order to customize
+     * the extraction process. The list of supported parameters can be found
+     * here. If not provided, a default configuration is used. The option is a
+     * java.util.Map<java.lang.String,java.lang.String> type.
+     */
     private String configurations;
+    /**
+     * List of Any23 extractors to be used in the unmarshal operation. A list of
+     * the available extractors can be found here here. If not provided, all the
+     * available extractors are used.
+     */
     private List<String> extractors;
+    /**
+     * The URI to use as base for building RDF entities if only relative paths
+     * are provided.
+     */
     private String baseURI;
     /**
      * Whether the data format should set the Content-Type header with the type


[camel] 11/20: Improve configurability re build project

Posted by ac...@apache.org.
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

commit 1e147a350b8454b0e267deef59645820b50dfb90
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Mon Jul 15 07:17:00 2019 -0500

    Improve configurability
    re build project
---
 .../src/main/docs/browse-component.adoc            |  1 +
 .../src/main/docs/controlbus-component.adoc        |  1 +
 .../src/main/docs/dataformat-component.adoc        |  1 +
 .../src/main/docs/direct-component.adoc            |  1 +
 .../src/main/docs/direct-vm-component.adoc         |  1 +
 .../camel-log/src/main/docs/log-component.adoc     |  1 +
 .../camel-ref/src/main/docs/ref-component.adoc     |  1 +
 .../camel-saga/src/main/docs/saga-component.adoc   |  1 +
 .../camel-seda/src/main/docs/seda-component.adoc   |  1 +
 .../camel-stub/src/main/docs/stub-component.adoc   |  1 +
 .../src/main/docs/validator-component.adoc         |  1 +
 .../camel-vm/src/main/docs/vm-component.adoc       |  1 +
 .../camel-xslt/src/main/docs/xslt-component.adoc   |  1 +
 components/readme.adoc                             |  2 +-
 .../org/apache/camel/builder/DataFormatClause.java |  8 ++--
 .../camel/model/dataformat/Any23DataFormat.java    | 48 ++++++++++++----------
 .../apache/camel/model/dataformat/Any23Type.java   | 30 ++++++++++++++
 .../reifier/dataformat/Any23DataFormatReifier.java | 18 +++++---
 .../endpoint/dsl/BrowseEndpointBuilderFactory.java | 40 ++++++++++++++++++
 .../endpoint/dsl/DirectEndpointBuilderFactory.java | 40 ++++++++++++++++++
 .../dsl/DirectVmEndpointBuilderFactory.java        | 40 ++++++++++++++++++
 .../endpoint/dsl/RefEndpointBuilderFactory.java    | 40 ++++++++++++++++++
 .../endpoint/dsl/SedaEndpointBuilderFactory.java   | 40 ++++++++++++++++++
 .../endpoint/dsl/StubEndpointBuilderFactory.java   | 40 ++++++++++++++++++
 .../endpoint/dsl/VmEndpointBuilderFactory.java     | 40 ++++++++++++++++++
 .../modules/ROOT/pages/any23-dataformat.adoc       | 15 ++++---
 .../springboot/Any23DataFormatConfiguration.java   | 26 ++++--------
 27 files changed, 383 insertions(+), 57 deletions(-)

diff --git a/components/camel-browse/src/main/docs/browse-component.adoc b/components/camel-browse/src/main/docs/browse-component.adoc
index fde908d..f9a6cce 100644
--- a/components/camel-browse/src/main/docs/browse-component.adoc
+++ b/components/camel-browse/src/main/docs/browse-component.adoc
@@ -63,6 +63,7 @@ with the following path and query parameters:
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 |===
diff --git a/components/camel-controlbus/src/main/docs/controlbus-component.adoc b/components/camel-controlbus/src/main/docs/controlbus-component.adoc
index 330d620..c9197fc 100644
--- a/components/camel-controlbus/src/main/docs/controlbus-component.adoc
+++ b/components/camel-controlbus/src/main/docs/controlbus-component.adoc
@@ -94,6 +94,7 @@ with the following path and query parameters:
 | Name | Description | Default | Type
 | *action* (producer) | To denote an action that can be either: start, stop, or status. To either start or stop a route, or to get the status of the route as output in the message body. You can use suspend and resume from Camel 2.11.1 onwards to either suspend or resume a route. And from Camel 2.11.1 onwards you can use stats to get performance statics returned in XML format; the routeId option can be used to define which route to get the performance stats for, if routeId is not defined, [...]
 | *async* (producer) | Whether to execute the control bus task asynchronously. Important: If this option is enabled, then any result from the task is not set on the Exchange. This is only possible if executing tasks synchronously. | false | boolean
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *loggingLevel* (producer) | Logging level used for logging when task is done, or if any exceptions occurred during processing the task. | INFO | LoggingLevel
 | *restartDelay* (producer) | The delay in millis to use when restarting a route. | 1000 | int
 | *routeId* (producer) | To specify a route by its id. The special keyword current indicates the current route. |  | String
diff --git a/components/camel-dataformat/src/main/docs/dataformat-component.adoc b/components/camel-dataformat/src/main/docs/dataformat-component.adoc
index 53bcf31..badbcec 100644
--- a/components/camel-dataformat/src/main/docs/dataformat-component.adoc
+++ b/components/camel-dataformat/src/main/docs/dataformat-component.adoc
@@ -62,6 +62,7 @@ with the following path and query parameters:
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 |===
diff --git a/components/camel-direct/src/main/docs/direct-component.adoc b/components/camel-direct/src/main/docs/direct-component.adoc
index 0f0b97a..6fa7ecb 100644
--- a/components/camel-direct/src/main/docs/direct-component.adoc
+++ b/components/camel-direct/src/main/docs/direct-component.adoc
@@ -76,6 +76,7 @@ with the following path and query parameters:
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
 | *block* (producer) | If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active. | true | boolean
 | *failIfNoConsumers* (producer) | Whether the producer should fail by throwing an exception, when sending to a DIRECT endpoint with no active consumers. | false | boolean
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *timeout* (producer) | The timeout value to use if block is enabled. | 30000 | long
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
diff --git a/components/camel-directvm/src/main/docs/direct-vm-component.adoc b/components/camel-directvm/src/main/docs/direct-vm-component.adoc
index 6374afd..f05c78d 100644
--- a/components/camel-directvm/src/main/docs/direct-vm-component.adoc
+++ b/components/camel-directvm/src/main/docs/direct-vm-component.adoc
@@ -89,6 +89,7 @@ with the following path and query parameters:
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
 | *block* (producer) | If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active. | true | boolean
 | *failIfNoConsumers* (producer) | Whether the producer should fail by throwing an exception, when sending to a Direct-VM endpoint with no active consumers. | false | boolean
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *timeout* (producer) | The timeout value to use if block is enabled. | 30000 | long
 | *headerFilterStrategy* (producer) | Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none. |  | HeaderFilterStrategy
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-log/src/main/docs/log-component.adoc b/components/camel-log/src/main/docs/log-component.adoc
index 0bc0ae6..23a7668 100644
--- a/components/camel-log/src/main/docs/log-component.adoc
+++ b/components/camel-log/src/main/docs/log-component.adoc
@@ -103,6 +103,7 @@ with the following path and query parameters:
 | *groupDelay* (producer) | Set the initial delay for stats (in millis) |  | Long
 | *groupInterval* (producer) | If specified will group message stats by this time interval (in millis) |  | Long
 | *groupSize* (producer) | An integer that specifies a group size for throughput logging. |  | Integer
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *level* (producer) | Logging level to use. The default value is INFO. | INFO | String
 | *logMask* (producer) | If true, mask sensitive information like password or passphrase in the log. |  | Boolean
 | *marker* (producer) | An optional Marker name to use. |  | String
diff --git a/components/camel-ref/src/main/docs/ref-component.adoc b/components/camel-ref/src/main/docs/ref-component.adoc
index 670291c..83c8427 100644
--- a/components/camel-ref/src/main/docs/ref-component.adoc
+++ b/components/camel-ref/src/main/docs/ref-component.adoc
@@ -61,6 +61,7 @@ with the following path and query parameters:
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 |===
diff --git a/components/camel-saga/src/main/docs/saga-component.adoc b/components/camel-saga/src/main/docs/saga-component.adoc
index 001c30c..4db0a8f 100644
--- a/components/camel-saga/src/main/docs/saga-component.adoc
+++ b/components/camel-saga/src/main/docs/saga-component.adoc
@@ -57,6 +57,7 @@ with the following path and query parameters:
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 |===
diff --git a/components/camel-seda/src/main/docs/seda-component.adoc b/components/camel-seda/src/main/docs/seda-component.adoc
index fc05cbf..37219bd 100644
--- a/components/camel-seda/src/main/docs/seda-component.adoc
+++ b/components/camel-seda/src/main/docs/seda-component.adoc
@@ -93,6 +93,7 @@ with the following path and query parameters:
 | *blockWhenFull* (producer) | Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted. | false | boolean
 | *discardIfNoConsumers* (producer) | Whether the producer should discard the message (do not add the message to the queue), when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
 | *failIfNoConsumers* (producer) | Whether the producer should fail by throwing an exception, when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *offerTimeout* (producer) | offerTimeout (in milliseconds) can be added to the block case when queue is full. You can disable timeout by using 0 or a negative value. |  | long
 | *timeout* (producer) | Timeout (in milliseconds) before a SEDA producer will stop waiting for an asynchronous task to complete. You can disable timeout by using 0 or a negative value. | 30000 | long
 | *waitForTaskToComplete* (producer) | Option to specify whether the caller should wait for the async task to complete or not before continuing. The following three options are supported: Always, Never or IfReplyExpected. The first two values are self-explanatory. The last value, IfReplyExpected, will only wait if the message is Request Reply based. The default option is IfReplyExpected. | IfReplyExpected | WaitForTaskToComplete
diff --git a/components/camel-stub/src/main/docs/stub-component.adoc b/components/camel-stub/src/main/docs/stub-component.adoc
index f3cc091..16e321f 100644
--- a/components/camel-stub/src/main/docs/stub-component.adoc
+++ b/components/camel-stub/src/main/docs/stub-component.adoc
@@ -83,6 +83,7 @@ with the following path and query parameters:
 | *blockWhenFull* (producer) | Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted. | false | boolean
 | *discardIfNoConsumers* (producer) | Whether the producer should discard the message (do not add the message to the queue), when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
 | *failIfNoConsumers* (producer) | Whether the producer should fail by throwing an exception, when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *offerTimeout* (producer) | offerTimeout (in milliseconds) can be added to the block case when queue is full. You can disable timeout by using 0 or a negative value. |  | long
 | *timeout* (producer) | Timeout (in milliseconds) before a SEDA producer will stop waiting for an asynchronous task to complete. You can disable timeout by using 0 or a negative value. | 30000 | long
 | *waitForTaskToComplete* (producer) | Option to specify whether the caller should wait for the async task to complete or not before continuing. The following three options are supported: Always, Never or IfReplyExpected. The first two values are self-explanatory. The last value, IfReplyExpected, will only wait if the message is Request Reply based. The default option is IfReplyExpected. | IfReplyExpected | WaitForTaskToComplete
diff --git a/components/camel-validator/src/main/docs/validator-component.adoc b/components/camel-validator/src/main/docs/validator-component.adoc
index 0bec4d9..50617ce 100644
--- a/components/camel-validator/src/main/docs/validator-component.adoc
+++ b/components/camel-validator/src/main/docs/validator-component.adoc
@@ -80,6 +80,7 @@ with the following path and query parameters:
 | *failOnNullBody* (producer) | Whether to fail if no body exists. | true | boolean
 | *failOnNullHeader* (producer) | Whether to fail if no header exists when validating against a header. | true | boolean
 | *headerName* (producer) | To validate against a header instead of the message body. |  | String
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *errorHandler* (advanced) | To use a custom org.apache.camel.processor.validation.ValidatorErrorHandler. The default error handler captures the errors and throws an exception. |  | ValidatorErrorHandler
 | *resourceResolver* (advanced) | To use a custom LSResourceResolver. See also setResourceResolverFactory(ValidatorResourceResolverFactory) |  | LSResourceResolver
diff --git a/components/camel-vm/src/main/docs/vm-component.adoc b/components/camel-vm/src/main/docs/vm-component.adoc
index ebf0120..dcb1fde 100644
--- a/components/camel-vm/src/main/docs/vm-component.adoc
+++ b/components/camel-vm/src/main/docs/vm-component.adoc
@@ -96,6 +96,7 @@ with the following path and query parameters:
 | *blockWhenFull* (producer) | Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted. | false | boolean
 | *discardIfNoConsumers* (producer) | Whether the producer should discard the message (do not add the message to the queue), when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
 | *failIfNoConsumers* (producer) | Whether the producer should fail by throwing an exception, when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *offerTimeout* (producer) | offerTimeout (in milliseconds) can be added to the block case when queue is full. You can disable timeout by using 0 or a negative value. |  | long
 | *timeout* (producer) | Timeout (in milliseconds) before a SEDA producer will stop waiting for an asynchronous task to complete. You can disable timeout by using 0 or a negative value. | 30000 | long
 | *waitForTaskToComplete* (producer) | Option to specify whether the caller should wait for the async task to complete or not before continuing. The following three options are supported: Always, Never or IfReplyExpected. The first two values are self-explanatory. The last value, IfReplyExpected, will only wait if the message is Request Reply based. The default option is IfReplyExpected. | IfReplyExpected | WaitForTaskToComplete
diff --git a/components/camel-xslt/src/main/docs/xslt-component.adoc b/components/camel-xslt/src/main/docs/xslt-component.adoc
index 13a41c5..e4b1a5218 100644
--- a/components/camel-xslt/src/main/docs/xslt-component.adoc
+++ b/components/camel-xslt/src/main/docs/xslt-component.adoc
@@ -88,6 +88,7 @@ with the following path and query parameters:
 | *contentCache* (producer) | Cache for the resource content (the stylesheet file) when it is loaded. If set to false Camel will reload the stylesheet file on each message processing. This is good for development. A cached stylesheet can be forced to reload at runtime via JMX using the clearCachedStylesheet operation. | true | boolean
 | *deleteOutputFile* (producer) | If you have output=file then this option dictates whether or not the output file should be deleted when the Exchange is done processing. For example suppose the output file is a temporary file, then it can be a good idea to delete it after use. | false | boolean
 | *failOnNullBody* (producer) | Whether or not to throw an exception if the input body is null. | true | boolean
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *output* (producer) | Option to specify which output type to use. Possible values are: string, bytes, DOM, file. The first three options are all in memory based, where as file is streamed directly to a java.io.File. For file you must specify the filename in the IN header with the key Exchange.XSLT_FILE_NAME which is also CamelXsltFileName. Also any paths leading to the filename must be created beforehand, otherwise an exception is thrown at runtime. | string | XsltOutput
 | *saxon* (producer) | Whether to use Saxon as the transformerFactoryClass. If enabled then the class net.sf.saxon.TransformerFactoryImpl. You would need to add Saxon to the classpath. | false | boolean
 | *transformerCacheSize* (producer) | The number of javax.xml.transform.Transformer object that are cached for reuse to avoid calls to Template.newTransformer(). | 0 | int
diff --git a/components/readme.adoc b/components/readme.adoc
index 4364608..5043495 100644
--- a/components/readme.adoc
+++ b/components/readme.adoc
@@ -908,7 +908,7 @@ Number of Data Formats: 44 in 36 JAR artifacts (0 deprecated)
 |===
 | Data Format | Available From | Description
 
-| link:camel-any23/src/main/docs/any23-dataformat.adoc[Any23] (camel-any23) | 1.0 | Any23 data format is used for parsing data to RDF.
+| link:camel-any23/src/main/docs/any23-dataformat.adoc[Any23] (camel-any23) | 3.0 | Any23 data format is used for parsing data to RDF.
 
 | link:camel-asn1/src/main/docs/asn1-dataformat.adoc[ASN.1 File] (camel-asn1) | 2.20 | The ASN.1 data format is used for file transfer with telecommunications protocols.
 
diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java b/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
index b14d1d4..048a286 100644
--- a/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
+++ b/core/camel-core/src/main/java/org/apache/camel/builder/DataFormatClause.java
@@ -17,6 +17,7 @@
 package org.apache.camel.builder;
 
 import java.nio.charset.Charset;
+import java.util.List;
 import java.util.Map;
 
 import org.w3c.dom.Node;
@@ -25,6 +26,7 @@ import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.dataformat.Any23DataFormat;
 import org.apache.camel.model.dataformat.ASN1DataFormat;
+import org.apache.camel.model.dataformat.Any23Type;
 import org.apache.camel.model.dataformat.AvroDataFormat;
 import org.apache.camel.model.dataformat.Base64DataFormat;
 import org.apache.camel.model.dataformat.BeanioDataFormat;
@@ -93,15 +95,15 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> {
     return dataFormat(new Any23DataFormat(baseuri));
   }
 
-  public T any23(String baseuri, String outputformat) {
+  public T any23(String baseuri, Any23Type outputformat) {
     return dataFormat(new Any23DataFormat(baseuri, outputformat));
   }
 
-  public T any23(String baseuri, String outputformat, String configurations) {
+  public T any23(String baseuri, Any23Type outputformat, Map<String, String> configurations) {
     return dataFormat(new Any23DataFormat(baseuri, outputformat, configurations));
   }
 
-  public T any23(String baseuri, String outputformat, String configurations, String extractors) {
+  public T any23(String baseuri, Any23Type outputformat, Map<String, String> configurations, List<String> extractors) {
     return dataFormat(new Any23DataFormat(baseuri, outputformat, configurations, extractors));
   }
 
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
index ecfde71..2b9180e 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
@@ -16,9 +16,12 @@
  */
 package org.apache.camel.model.dataformat;
 
+import java.util.List;
+import java.util.Map;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.Metadata;
@@ -26,20 +29,20 @@ import org.apache.camel.spi.Metadata;
 /**
  * Any23 data format is used for parsing data to RDF.
  */
-@Metadata(firstVersion = "1.0.0", label = "dataformat,transformation", title = "Any23")
+@Metadata(firstVersion = "3.0.0", label = "dataformat,transformation", title = "Any23")
 @XmlRootElement(name = "any23")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class Any23DataFormat extends DataFormatDefinition {
 
   @XmlAttribute
-  @Metadata(defaultValue = "MODEL")
-  private String outputFormat;
+  @Metadata(defaultValue = "RDFXML")
+  private Any23Type outputFormat;
+  @XmlElement
+  private Map<String, String> configurations;
+  @XmlElement
+  private List<String> extractors;
   @XmlAttribute
-  private String configurations;
-  @XmlAttribute
-  private String extractors;
-  @XmlAttribute
-  private String baseuri;
+  private String baseURI;
 
   public Any23DataFormat() {
     super("any23");
@@ -47,57 +50,58 @@ public class Any23DataFormat extends DataFormatDefinition {
 
   public Any23DataFormat(String baseuri) {
     this();
-    this.baseuri = baseuri;
+    this.baseURI = baseuri;
   }
 
-  public Any23DataFormat(String baseuri, String outputFormat) {
+  public Any23DataFormat(String baseuri, Any23Type outputFormat) {
     this(baseuri);
     this.outputFormat = outputFormat;
   }
 
-  public Any23DataFormat(String baseuri, String outputFormat, String configurations) {
+  public Any23DataFormat(String baseuri, Any23Type outputFormat, Map<String, String> configurations) {
     this(baseuri, outputFormat);
     this.outputFormat = outputFormat;
     this.configurations = configurations;
   }
 
-  public Any23DataFormat(String baseuri, String outputFormat, String configurations, String extractors) {
+  public Any23DataFormat(String baseuri, Any23Type outputFormat, Map<String, String> configurations, List<String> extractors) {
     this(baseuri, outputFormat, configurations);
     this.outputFormat = outputFormat;
     this.configurations = configurations;
     this.extractors = extractors;
   }
 
-  public String getOutputFormat() {
+  public Any23Type getOutputFormat() {
     return outputFormat;
   }
 
-  public void setOutputFormat(String outputFormat) {
+  public void setOutputFormat(Any23Type outputFormat) {
     this.outputFormat = outputFormat;
   }
 
-  public String getConfigurations() {
+  public Map<String, String> getConfigurations() {
     return configurations;
   }
 
-  public void setConfigurations(String configurations) {
+  public void setConfigurations(Map<String, String> configurations) {
     this.configurations = configurations;
   }
 
-  public String getExtractors() {
+  public List<String> getExtractors() {
     return extractors;
   }
 
-  public void setExtractors(String extractors) {
+  public void setExtractors(List<String> extractors) {
     this.extractors = extractors;
   }
 
-  public String getBaseuri() {
-    return baseuri;
+  public String getBaseURI() {
+    return baseURI;
   }
 
-  public void setBaseuri(String baseuri) {
-    this.baseuri = baseuri;
+  public void setBaseURI(String baseURI) {
+    this.baseURI = baseURI;
   }
 
+  
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23Type.java b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23Type.java
new file mode 100644
index 0000000..bdd0a59
--- /dev/null
+++ b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23Type.java
@@ -0,0 +1,30 @@
+/*
+ * 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.model.dataformat;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * Represents the different types of bindy data formats.
+ */
+@XmlType
+@XmlEnum
+public enum Any23Type {
+
+  NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON
+}
diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
index 72adb99..8f33e6a 100644
--- a/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
+++ b/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
@@ -29,12 +29,18 @@ public class Any23DataFormatReifier extends DataFormatReifier<Any23DataFormat> {
 
   @Override
   protected void configureDataFormat(DataFormat dataFormat, CamelContext camelContext) {
-//    if (definition.getDataObjectType() != null) {
-//      setProperty(camelContext, dataFormat, "dataObjectType", definition.getDataObjectType());
-//    }
-//    if (definition.getOmitXmlDeclaration() != null) {
-//      setProperty(camelContext, dataFormat, "omitXmlDeclaration", definition.getOmitXmlDeclaration());
-//    }
+    if (definition.getOutputFormat() != null) {
+      setProperty(camelContext, dataFormat, "outputFormat", definition.getOutputFormat());
+    }
+    if (definition.getConfigurations() != null) {
+      setProperty(camelContext, dataFormat, "configurations", definition.getConfigurations());
+    }
+    if (definition.getExtractors() != null) {
+      setProperty(camelContext, dataFormat, "extractors", definition.getExtractors());
+    }
+    if (definition.getBaseURI() != null) {
+      setProperty(camelContext, dataFormat, "baseURI", definition.getBaseURI());
+    }
   }
 
 }
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/BrowseEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/BrowseEndpointBuilderFactory.java
index d9c39e6..5e0b7df 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/BrowseEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/BrowseEndpointBuilderFactory.java
@@ -209,6 +209,46 @@ public interface BrowseEndpointBuilderFactory {
         default AdvancedBrowseEndpointProducerBuilder advanced() {
             return (AdvancedBrowseEndpointProducerBuilder) this;
         }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default BrowseEndpointProducerBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default BrowseEndpointProducerBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
     }
 
     /**
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectEndpointBuilderFactory.java
index 88ab34d..bb7ca5c 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectEndpointBuilderFactory.java
@@ -262,6 +262,46 @@ public interface DirectEndpointBuilderFactory {
             return this;
         }
         /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default DirectEndpointProducerBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default DirectEndpointProducerBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
          * The timeout value to use if block is enabled.
          * 
          * The option is a: <code>long</code> type.
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectVmEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectVmEndpointBuilderFactory.java
index 11efea0..8ab01c3 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectVmEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectVmEndpointBuilderFactory.java
@@ -289,6 +289,46 @@ public interface DirectVmEndpointBuilderFactory {
             return this;
         }
         /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default DirectVmEndpointProducerBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default DirectVmEndpointProducerBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
          * The timeout value to use if block is enabled.
          * 
          * The option is a: <code>long</code> type.
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/RefEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/RefEndpointBuilderFactory.java
index ca6d158..269dfb8 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/RefEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/RefEndpointBuilderFactory.java
@@ -209,6 +209,46 @@ public interface RefEndpointBuilderFactory {
         default AdvancedRefEndpointProducerBuilder advanced() {
             return (AdvancedRefEndpointProducerBuilder) this;
         }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default RefEndpointProducerBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default RefEndpointProducerBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
     }
 
     /**
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/SedaEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/SedaEndpointBuilderFactory.java
index 5708c0d..31d6c21 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/SedaEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/SedaEndpointBuilderFactory.java
@@ -523,6 +523,46 @@ public interface SedaEndpointBuilderFactory {
             return this;
         }
         /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default SedaEndpointProducerBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default SedaEndpointProducerBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
          * offerTimeout (in milliseconds) can be added to the block case when
          * queue is full. You can disable timeout by using 0 or a negative
          * value.
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/StubEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/StubEndpointBuilderFactory.java
index bc923ef..969b9ba 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/StubEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/StubEndpointBuilderFactory.java
@@ -523,6 +523,46 @@ public interface StubEndpointBuilderFactory {
             return this;
         }
         /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default StubEndpointProducerBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default StubEndpointProducerBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
          * offerTimeout (in milliseconds) can be added to the block case when
          * queue is full. You can disable timeout by using 0 or a negative
          * value.
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/VmEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/VmEndpointBuilderFactory.java
index 9f87f922..b7e9a02 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/VmEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/VmEndpointBuilderFactory.java
@@ -521,6 +521,46 @@ public interface VmEndpointBuilderFactory {
             return this;
         }
         /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default VmEndpointProducerBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Group: producer
+         */
+        default VmEndpointProducerBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            setProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
          * offerTimeout (in milliseconds) can be added to the block case when
          * queue is full. You can disable timeout by using 0 or a negative
          * value.
diff --git a/docs/components/modules/ROOT/pages/any23-dataformat.adoc b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
index 962f3a4..3155e14 100644
--- a/docs/components/modules/ROOT/pages/any23-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
@@ -32,10 +32,10 @@ The Any23 dataformat supports 5 options, which are listed below.
 [width="100%",cols="2s,1m,1m,6",options="header"]
 |===
 | Name | Default | Java Type | Description
-| outputFormat | MODEL | String | 
-| configurations |  | String | 
-| extractors |  | String | 
-| baseuri |  | String | 
+| outputFormat | MODEL | Any23Type | 
+| configurations |  | Map | 
+| extractors |  | List | 
+| baseURI |  | String | 
 | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type 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.
 |===
 // dataformat options: END
@@ -55,19 +55,18 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 6 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.dataformat.any23.baseuri* |  |  | String
+| *camel.dataformat.any23.base-u-r-i* |  |  | String
 | *camel.dataformat.any23.configurations* |  |  | String
 | *camel.dataformat.any23.content-type-header* | Whether the data format should set the Content-Type header with the type 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.any23.enabled* | Whether to enable auto configuration of the any23 data format. This is enabled by default. |  | Boolean
-| *camel.dataformat.any23.extractors* |  |  | String
-| *camel.dataformat.any23.output-format* |  | MODEL | String
+| *camel.dataformat.any23.extractors* |  |  | List
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
index fdc80df..058c337 100644
--- a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.dataformat.any23.springboot;
 
+import java.util.List;
 import javax.annotation.Generated;
 import org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -36,10 +37,9 @@ public class Any23DataFormatConfiguration
      * enabled by default.
      */
     private Boolean enabled;
-    private String outputFormat = "MODEL";
     private String configurations;
-    private String extractors;
-    private String baseuri;
+    private List<String> extractors;
+    private String baseURI;
     /**
      * Whether the data format should set the Content-Type header with the type
      * from the data format if the data format is capable of doing so. For
@@ -48,14 +48,6 @@ public class Any23DataFormatConfiguration
      */
     private Boolean contentTypeHeader = false;
 
-    public String getOutputFormat() {
-        return outputFormat;
-    }
-
-    public void setOutputFormat(String outputFormat) {
-        this.outputFormat = outputFormat;
-    }
-
     public String getConfigurations() {
         return configurations;
     }
@@ -64,20 +56,20 @@ public class Any23DataFormatConfiguration
         this.configurations = configurations;
     }
 
-    public String getExtractors() {
+    public List<String> getExtractors() {
         return extractors;
     }
 
-    public void setExtractors(String extractors) {
+    public void setExtractors(List<String> extractors) {
         this.extractors = extractors;
     }
 
-    public String getBaseuri() {
-        return baseuri;
+    public String getBaseURI() {
+        return baseURI;
     }
 
-    public void setBaseuri(String baseuri) {
-        this.baseuri = baseuri;
+    public void setBaseURI(String baseURI) {
+        this.baseURI = baseURI;
     }
 
     public Boolean getContentTypeHeader() {


[camel] 04/20: some clean-up

Posted by ac...@apache.org.
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

commit 2ea75a6744be76f1b8cb91ffee7bc4a5c40a6553
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Mon Jun 10 01:04:12 2019 -0500

    some clean-up
---
 apache-camel/pom.xml                               | 10 +++
 apache-camel/src/main/descriptors/common-bin.xml   |  2 +
 components/camel-any23/pom.xml                     |  2 +-
 .../src/main/docs/any23-dataformat.adoc            | 12 ++-
 .../{any23DataFormat.java => Any23DataFormat.java} |  8 +-
 ...asicTest.java => Any23DataFormatBasicTest.java} |  2 +-
 .../any23/TidyMarkupDataFormatAsDomNodeTest.java   | 82 ---------------------
 .../TidyMarkupDataFormatWithUnmarshalTypeTest.java | 37 ----------
 .../dataformat/any23/TidyMarkupTestSupport.java    | 86 ----------------------
 components/readme.adoc                             |  2 +
 docs/components/modules/ROOT/nav.adoc              |  1 +
 .../modules/ROOT/pages}/any23-dataformat.adoc      | 12 ++-
 parent/pom.xml                                     | 10 +++
 .../components-starter/camel-any23-starter/pom.xml |  2 +-
 ....java => Any23DataFormatAutoConfiguration.java} | 24 +++---
 ...tion.java => Any23DataFormatConfiguration.java} |  2 +-
 .../src/main/resources/META-INF/spring.factories   |  2 +-
 17 files changed, 56 insertions(+), 240 deletions(-)

diff --git a/apache-camel/pom.xml b/apache-camel/pom.xml
index 154c55e..f61b9d3 100644
--- a/apache-camel/pom.xml
+++ b/apache-camel/pom.xml
@@ -133,6 +133,11 @@
     </dependency>
     <dependency>
       <groupId>org.apache.camel</groupId>
+      <artifactId>camel-any23</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
       <artifactId>camel-apns</artifactId>
       <version>${project.version}</version>
     </dependency>
@@ -1677,6 +1682,11 @@
     </dependency>
     <dependency>
       <groupId>org.apache.camel</groupId>
+      <artifactId>camel-any23-starter</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
       <artifactId>camel-apns-starter</artifactId>
       <version>${project.version}</version>
     </dependency>
diff --git a/apache-camel/src/main/descriptors/common-bin.xml b/apache-camel/src/main/descriptors/common-bin.xml
index b20fa84..48c86f6 100644
--- a/apache-camel/src/main/descriptors/common-bin.xml
+++ b/apache-camel/src/main/descriptors/common-bin.xml
@@ -47,6 +47,7 @@
         <include>org.apache.camel:camel-ahc</include>
         <include>org.apache.camel:camel-ahc-ws</include>
         <include>org.apache.camel:camel-amqp</include>
+        <include>org.apache.camel:camel-any23</include>
         <include>org.apache.camel:camel-apns</include>
         <include>org.apache.camel:camel-as2</include>
         <include>org.apache.camel:camel-as2-api</include>
@@ -395,6 +396,7 @@
         <include>org.apache.camel:camel-ahc-starter</include>
         <include>org.apache.camel:camel-ahc-ws-starter</include>
         <include>org.apache.camel:camel-amqp-starter</include>
+        <include>org.apache.camel:camel-any23-starter</include>
         <include>org.apache.camel:camel-apns-starter</include>
         <include>org.apache.camel:camel-as2-starter</include>
         <include>org.apache.camel:camel-asn1-starter</include>
diff --git a/components/camel-any23/pom.xml b/components/camel-any23/pom.xml
index e42a960..534cbae 100644
--- a/components/camel-any23/pom.xml
+++ b/components/camel-any23/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>camel-any23</artifactId>
     <packaging>jar</packaging>
-    <name>Camel :: any23</name>
+    <name>Camel :: Any23</name>
     <description>Camel Any23 support</description>
 
     <properties>
diff --git a/components/camel-any23/src/main/docs/any23-dataformat.adoc b/components/camel-any23/src/main/docs/any23-dataformat.adoc
index bb50788..6ce4081 100644
--- a/components/camel-any23/src/main/docs/any23-dataformat.adoc
+++ b/components/camel-any23/src/main/docs/any23-dataformat.adoc
@@ -44,24 +44,22 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 <dependency>
   <groupId>org.apache.camel</groupId>
-  <artifactId>camel-tagsoup-starter</artifactId>
+  <artifactId>camel-any23-starter</artifactId>
   <version>x.x.x</version>
   <!-- use the same version as your Camel core version -->
 </dependency>
 ----
 
 
-The component supports 4 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.dataformat.tidymarkup.content-type-header* | Whether the data format should set the Content-Type header with the type 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.tidymarkup.data-object-type* | What data type to unmarshal as, can either be org.w3c.dom.Node or java.lang.String. Is by default org.w3c.dom.Node | org.w3c.dom.Node | String
-| *camel.dataformat.tidymarkup.enabled* | Enable tidymarkup dataformat | true | Boolean
-| *camel.dataformat.tidymarkup.omit-xml-declaration* | When returning a String, do we omit the XML declaration in the top. | false | Boolean
+| *camel.dataformat.any23.content-type-header* | Whether the data format should set the Content-Type header with the type 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.any23.enabled* | Whether to enable auto configuration of the any23 data format. This is enabled by default. |  | Boolean
 |===
 // spring-boot-auto-configure options: END
 
@@ -111,4 +109,4 @@ the download page for the latest versions).
   <artifactId>camel-tagsoup</artifactId>
   <version>x.x.x</version>
 </dependency>
-----------------------------------------
\ No newline at end of file
+----------------------------------------
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/any23DataFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
similarity index 89%
rename from components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/any23DataFormat.java
rename to components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
index 9dd325d..9f97c98 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/any23DataFormat.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
@@ -33,12 +33,12 @@ import org.slf4j.LoggerFactory;
  * site (or file) into rdf.
  */
 @Dataformat("any23")
-public class any23DataFormat extends ServiceSupport implements DataFormat, DataFormatName {
+public class Any23DataFormat extends ServiceSupport implements DataFormat, DataFormatName {
 
   /*
      * Our Logger
    */
-  private static final Logger LOG = LoggerFactory.getLogger(any23DataFormat.class);
+  private static final Logger LOG = LoggerFactory.getLogger(Any23DataFormat.class);
 
 
 
@@ -61,7 +61,7 @@ public class any23DataFormat extends ServiceSupport implements DataFormat, DataF
    * Marshal data. Generate RDF.
    */
   public void marshal(Exchange exchange, Object object, OutputStream outputStream) throws Exception {
-    throw new CamelException("Sin implementaci[on aun");
+    throw new CamelException("Under construction");
   }
 
   /**
@@ -69,7 +69,7 @@ public class any23DataFormat extends ServiceSupport implements DataFormat, DataF
    */
   public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
 
-     throw new CamelException("Sin implementaci[on aun");
+     throw new CamelException("Under construction");
   }
 
   @Override
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/any23DataFormatBasicTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
similarity index 97%
rename from components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/any23DataFormatBasicTest.java
rename to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
index e0305bd..c65f9e5 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/any23DataFormatBasicTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
@@ -29,7 +29,7 @@ import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
 
-public class any23DataFormatBasicTest extends CamelTestSupport {
+public class Any23DataFormatBasicTest extends CamelTestSupport {
    
     @Test
     public void testUnMarshalToStringOfXml() throws Exception {
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatAsDomNodeTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatAsDomNodeTest.java
deleted file mode 100644
index 1f38ff2..0000000
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatAsDomNodeTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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.dataformat.any23;
-
-import java.io.File;
-import java.util.List;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
-
-public class TidyMarkupDataFormatAsDomNodeTest extends CamelTestSupport {
-    
-    @Test
-    public void testUnMarshalToStringOfXml() throws Exception {
-        MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
-        resultEndpoint.expectedMessageCount(2);
-
-        /*
-         * each of these files has a <p>TidyMarkupNode section. (no closing tag)
-         * 
-         * See the route below, we send the tidyMarkup to xpath and boolean that out.
-         */
-        String badHtml = TidyMarkupTestSupport.loadFileAsString(new File(
-                "src/test/resources/org/apache/camel/dataformat/tagsoup/testfile1.html"));
-        String evilHtml = TidyMarkupTestSupport.loadFileAsString(new File(
-                "src/test/resources/org/apache/camel/dataformat/tagsoup/testfile2-evilHtml.html"));
-
-        template.sendBody("direct:start", badHtml);
-        template.sendBody("direct:start", evilHtml);
-
-        resultEndpoint.assertIsSatisfied();
-        List<Exchange> list = resultEndpoint.getReceivedExchanges();
-        for (Exchange exchange : list) {
-            Message in = exchange.getIn();
-            String response = in.getBody(String.class);
-
-            log.debug("Received " + response);
-            assertNotNull("Should be able to convert received body to a string", response);
-
-            try {
-                /*
-                 * our route xpaths the existence of our signature "<p>TidyMarkupNode"
-                 * but of course, by the xpath time, it is well formed
-                 */
-                assertTrue(response.equals("true"));
-            } catch (Exception e) {
-
-                fail("Failed to convert the resulting String to XML: " + e.getLocalizedMessage());
-            }
-
-        }
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() {
-        return new RouteBuilder() {
-            public void configure() {
-                from("direct:start").unmarshal().tidyMarkup().setBody().xpath(
-                        "boolean(//p[contains(text(),'TidyMarkupNode')])", String.class).to("mock:result");
-            }
-        };
-    }
-
-}
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatWithUnmarshalTypeTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatWithUnmarshalTypeTest.java
deleted file mode 100644
index a99664e..0000000
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatWithUnmarshalTypeTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.dataformat.any23;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.dataformat.TidyMarkupDataFormat;
-
-/*
- * This just tests whether this dataformat is available to UnmarshalType
- */
-public class TidyMarkupDataFormatWithUnmarshalTypeTest extends any23DataFormatBasicTest {
-
-    @Override
-    protected RouteBuilder createRouteBuilder() {
-        return new RouteBuilder() {
-            public void configure() {                
-                TidyMarkupDataFormat dataFormat = new TidyMarkupDataFormat(String.class);
-                from("direct:start").unmarshal(dataFormat).to("mock:result");
-            }
-        };
-    }
-
-}
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupTestSupport.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupTestSupport.java
deleted file mode 100644
index 7048373..0000000
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupTestSupport.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * 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.dataformat.any23;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.StringReader;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.w3c.dom.Document;
-
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-import org.apache.camel.util.IOHelper;
-
-public final class TidyMarkupTestSupport {
-    
-    private TidyMarkupTestSupport() {
-        // Utility class
-    }
-    
-    public static String loadFileAsString(File file) throws Exception {
-        StringBuilder fileContent = new StringBuilder();
-        BufferedReader input = IOHelper.buffered(new FileReader(file));
-        try {
-            String line = null;
-            while ((line = input.readLine()) != null) {
-                fileContent.append(line);
-                fileContent.append(System.lineSeparator());
-            }
-        } finally {
-            input.close();
-        }
-        return fileContent.toString();
-    }
-
-    /**
-     * Convert XML String to a Document.
-     * 
-     * @param xmlString
-     * @return document Document
-     * @throws IOException
-     * @throws SAXException
-     * @throws ParserConfigurationException
-     */
-    public static Document stringToXml(String xmlString) throws SAXException, IOException, ParserConfigurationException {
-        return createDocumentBuilder().parse(new InputSource(new StringReader(xmlString)));
-    }
-
-    /**
-     * Static to generate a documentBuilder
-     * 
-     * @return
-     * @throws ParserConfigurationException
-     */
-    public static DocumentBuilder createDocumentBuilder() throws ParserConfigurationException {
-
-        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
-        docBuilderFactory.setIgnoringComments(true);
-        docBuilderFactory.setIgnoringElementContentWhitespace(true);
-        docBuilderFactory.setCoalescing(true);
-        docBuilderFactory.setExpandEntityReferences(true);
-        docBuilderFactory.setNamespaceAware(true);
-        return docBuilderFactory.newDocumentBuilder();
-    }
-}
diff --git a/components/readme.adoc b/components/readme.adoc
index 803fa2d..4364608 100644
--- a/components/readme.adoc
+++ b/components/readme.adoc
@@ -908,6 +908,8 @@ Number of Data Formats: 44 in 36 JAR artifacts (0 deprecated)
 |===
 | Data Format | Available From | Description
 
+| link:camel-any23/src/main/docs/any23-dataformat.adoc[Any23] (camel-any23) | 1.0 | Any23 data format is used for parsing data to RDF.
+
 | link:camel-asn1/src/main/docs/asn1-dataformat.adoc[ASN.1 File] (camel-asn1) | 2.20 | The ASN.1 data format is used for file transfer with telecommunications protocols.
 
 | link:camel-avro/src/main/docs/avro-dataformat.adoc[Avro] (camel-avro) | 2.14 | The Avro data format is used for serialization and deserialization of messages using Apache Avro binary dataformat.
diff --git a/docs/components/modules/ROOT/nav.adoc b/docs/components/modules/ROOT/nav.adoc
index c53f5c6..b9a07cc 100644
--- a/docs/components/modules/ROOT/nav.adoc
+++ b/docs/components/modules/ROOT/nav.adoc
@@ -5,6 +5,7 @@
 * xref:ahc-ws-component.adoc[AHC Websocket Component]
 * xref:ahc-component.adoc[AHC Component]
 * xref:amqp-component.adoc[AMQP Component]
+* xref:any23-dataformat.adoc[Any23 DataFormat]
 * xref:apns-component.adoc[APNS Component]
 * xref:as2-component.adoc[AS2 Component]
 * xref:asn1-dataformat.adoc[ASN.1 File DataFormat]
diff --git a/components/camel-any23/src/main/docs/any23-dataformat.adoc b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
similarity index 77%
copy from components/camel-any23/src/main/docs/any23-dataformat.adoc
copy to docs/components/modules/ROOT/pages/any23-dataformat.adoc
index bb50788..6ce4081 100644
--- a/components/camel-any23/src/main/docs/any23-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
@@ -44,24 +44,22 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 <dependency>
   <groupId>org.apache.camel</groupId>
-  <artifactId>camel-tagsoup-starter</artifactId>
+  <artifactId>camel-any23-starter</artifactId>
   <version>x.x.x</version>
   <!-- use the same version as your Camel core version -->
 </dependency>
 ----
 
 
-The component supports 4 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *camel.dataformat.tidymarkup.content-type-header* | Whether the data format should set the Content-Type header with the type 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.tidymarkup.data-object-type* | What data type to unmarshal as, can either be org.w3c.dom.Node or java.lang.String. Is by default org.w3c.dom.Node | org.w3c.dom.Node | String
-| *camel.dataformat.tidymarkup.enabled* | Enable tidymarkup dataformat | true | Boolean
-| *camel.dataformat.tidymarkup.omit-xml-declaration* | When returning a String, do we omit the XML declaration in the top. | false | Boolean
+| *camel.dataformat.any23.content-type-header* | Whether the data format should set the Content-Type header with the type 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.any23.enabled* | Whether to enable auto configuration of the any23 data format. This is enabled by default. |  | Boolean
 |===
 // spring-boot-auto-configure options: END
 
@@ -111,4 +109,4 @@ the download page for the latest versions).
   <artifactId>camel-tagsoup</artifactId>
   <version>x.x.x</version>
 </dependency>
-----------------------------------------
\ No newline at end of file
+----------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index bc4fe83..445abf9 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -825,6 +825,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-any23</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-apns</artifactId>
         <version>${project.version}</version>
       </dependency>
@@ -2419,6 +2424,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-any23-starter</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-apns-starter</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml b/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
index 5c3558f..3bb59a6 100644
--- a/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
@@ -26,7 +26,7 @@
   </parent>
   <artifactId>camel-any23-starter</artifactId>
   <packaging>jar</packaging>
-  <name>Spring-Boot Starter :: Camel :: any23</name>
+  <name>Spring-Boot Starter :: Camel :: Any23</name>
   <description>Spring-Boot Starter for Camel Any23 support</description>
   <dependencies>
     <dependency>
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatAutoConfiguration.java
similarity index 88%
rename from platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatAutoConfiguration.java
rename to platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatAutoConfiguration.java
index 3caaebc..15ae6b2 100644
--- a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatAutoConfiguration.java
@@ -23,7 +23,7 @@ import javax.annotation.Generated;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.dataformat.any23.any23DataFormat;
+import org.apache.camel.dataformat.any23.Any23DataFormat;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.DataFormatCustomizer;
 import org.apache.camel.spi.DataFormatFactory;
@@ -54,22 +54,22 @@ import org.springframework.context.annotation.Configuration;
 @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
 @Configuration
 @Conditional({ConditionalOnCamelContextAndAutoConfigurationBeans.class,
-        any23DataFormatAutoConfiguration.GroupConditions.class})
+        Any23DataFormatAutoConfiguration.GroupConditions.class})
 @AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
 @EnableConfigurationProperties({DataFormatConfigurationProperties.class,
-        any23DataFormatConfiguration.class})
-public class any23DataFormatAutoConfiguration {
+        Any23DataFormatConfiguration.class})
+public class Any23DataFormatAutoConfiguration {
 
     private static final Logger LOGGER = LoggerFactory
-            .getLogger(any23DataFormatAutoConfiguration.class);
+            .getLogger(Any23DataFormatAutoConfiguration.class);
     @Autowired
     private ApplicationContext applicationContext;
     @Autowired
     private CamelContext camelContext;
     @Autowired
-    private any23DataFormatConfiguration configuration;
+    private Any23DataFormatConfiguration configuration;
     @Autowired(required = false)
-    private List<DataFormatCustomizer<any23DataFormat>> customizers;
+    private List<DataFormatCustomizer<Any23DataFormat>> customizers;
 
     static class GroupConditions extends GroupCondition {
         public GroupConditions() {
@@ -78,14 +78,14 @@ public class any23DataFormatAutoConfiguration {
     }
 
     @Bean(name = "any23-dataformat-factory")
-    @ConditionalOnMissingBean(any23DataFormat.class)
-    public DataFormatFactory configureany23DataFormatFactory() throws Exception {
+    @ConditionalOnMissingBean(Any23DataFormat.class)
+    public DataFormatFactory configureAny23DataFormatFactory() throws Exception {
         return new DataFormatFactory() {
             @Override
             public DataFormat newInstance() {
-                any23DataFormat dataformat = new any23DataFormat();
+                Any23DataFormat dataformat = new Any23DataFormat();
                 if (CamelContextAware.class
-                        .isAssignableFrom(any23DataFormat.class)) {
+                        .isAssignableFrom(Any23DataFormat.class)) {
                     CamelContextAware contextAware = CamelContextAware.class
                             .cast(dataformat);
                     if (contextAware != null) {
@@ -102,7 +102,7 @@ public class any23DataFormatAutoConfiguration {
                     throw new RuntimeCamelException(e);
                 }
                 if (ObjectHelper.isNotEmpty(customizers)) {
-                    for (DataFormatCustomizer<any23DataFormat> customizer : customizers) {
+                    for (DataFormatCustomizer<Any23DataFormat> customizer : customizers) {
                         boolean useCustomizer = (customizer instanceof HasId)
                                 ? HierarchicalPropertiesEvaluator.evaluate(
                                         applicationContext.getEnvironment(),
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
similarity index 97%
rename from platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatConfiguration.java
rename to platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
index 06565e8..423812f 100644
--- a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
@@ -27,7 +27,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
 @ConfigurationProperties(prefix = "camel.dataformat.any23")
-public class any23DataFormatConfiguration
+public class Any23DataFormatConfiguration
         extends
             DataFormatConfigurationPropertiesCommon {
 
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.factories b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.factories
index 77190b5..78f4e51 100644
--- a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.factories
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.factories
@@ -16,4 +16,4 @@
 ## ---------------------------------------------------------------------------
 
 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-org.apache.camel.dataformat.any23.springboot.any23DataFormatAutoConfiguration
+org.apache.camel.dataformat.any23.springboot.Any23DataFormatAutoConfiguration


[camel] 05/20: basic marshal implementation any23

Posted by ac...@apache.org.
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

commit d48be9dd3e1e548dc797f1001f85ccabdb6d98f0
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Sun Jun 16 23:42:31 2019 -0500

    basic marshal implementation any23
---
 components/camel-any23/pom.xml                     |  5 ++
 .../camel/dataformat/any23/Any23DataFormat.java    | 77 ++++++++++++++++++++--
 .../camel/dataformat/any23/Any23Parameters.java    | 36 ++++++++++
 .../dataformat/any23/Any23DataFormatBasicTest.java | 53 ++++++++++++---
 4 files changed, 157 insertions(+), 14 deletions(-)

diff --git a/components/camel-any23/pom.xml b/components/camel-any23/pom.xml
index 534cbae..23cb7f0 100644
--- a/components/camel-any23/pom.xml
+++ b/components/camel-any23/pom.xml
@@ -69,5 +69,10 @@
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.any23</groupId>
+            <artifactId>apache-any23-core</artifactId>
+            <version>2.3</version>
+        </dependency>
     </dependencies>
 </project>
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
index 9f97c98..12cd8dc 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
@@ -16,14 +16,28 @@
  */
 package org.apache.camel.dataformat.any23;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import org.apache.any23.Any23;
+import org.apache.any23.extractor.ExtractionException;
+import org.apache.any23.http.HTTPClient;
+import org.apache.any23.source.DocumentSource;
+import org.apache.any23.source.HTTPDocumentSource;
+import org.apache.any23.source.StringDocumentSource;
+import org.apache.any23.writer.NTriplesWriter;
+import org.apache.any23.writer.TripleHandler;
+import org.apache.any23.writer.TripleHandlerException;
 
 import org.apache.camel.CamelException;
 import org.apache.camel.Exchange;
+import org.apache.camel.NoTypeConversionAvailableException;
+import org.apache.camel.TypeConversionException;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.DataFormatName;
 import org.apache.camel.spi.annotations.Dataformat;
+import org.apache.camel.support.ExchangeHelper;
 import org.apache.camel.support.service.ServiceSupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -40,7 +54,7 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
    */
   private static final Logger LOG = LoggerFactory.getLogger(Any23DataFormat.class);
 
-
+  private Any23Parameters parameters ;
 
   /**
    * String or Node to return
@@ -56,20 +70,75 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
   public String getDataFormatName() {
     return "any23";
   }
+  
+  
+  /*protected final void setDefaultParameters () {
+     parameters = new Any23Parameters ();
+  
+  }*/
+  
+  /*public Any23DataFormat (){
+    this.setDefaultParameters();
+  }*/
 
   /**
    * Marshal data. Generate RDF.
    */
   public void marshal(Exchange exchange, Object object, OutputStream outputStream) throws Exception {
-    throw new CamelException("Under construction");
+   /*final String payload = ExchangeHelper.convertToMandatoryType(exchange, String.class, object);
+   System.out.print ("payload");
+   System.out.print (payload);
+   
+    Any23 runner = new Any23();*/
+    anytordf( exchange,  object,  outputStream);
+           //  return n3;
+   // throw new CamelException("Under construction");
   }
 
   /**
    * Unmarshal the data
    */
   public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
-
-     throw new CamelException("Under construction");
+          Any23 runner = new Any23();
+          runner.setHTTPUserAgent("test-user-agent");
+          HTTPClient httpClient = runner.getHTTPClient();
+          DocumentSource source = new HTTPDocumentSource(
+                  httpClient,
+                  "http://dbpedia.org/page/Ecuador");
+        //  System.out.print("#######");
+        //  System.out.print(source.getContentType());
+          ByteArrayOutputStream out = new ByteArrayOutputStream();
+          TripleHandler handler = new NTriplesWriter(out);
+           
+              runner.extract(source, handler);
+        
+              
+             handler.close();
+            
+          
+             String n3 = out.toString("UTF-8");
+            
+           //  System.out.print (n3);
+             return n3;
+     //throw new CamelException("Under construction");
+  }
+  
+  private void anytordf (final Exchange exchange, Object object, OutputStream outputStream) throws IOException, ExtractionException, TypeConversionException, NoTypeConversionAvailableException, TripleHandlerException{
+    final String payload = ExchangeHelper.convertToMandatoryType(exchange, String.class, object);
+    System.out.println ("PAYLOAD");
+    System.out.println (payload);
+    DocumentSource source = new StringDocumentSource(payload, "http://host.com/service");
+    Any23 runner = new Any23();
+    ByteArrayOutputStream out = new ByteArrayOutputStream();
+    this.parameters = new Any23Parameters (out);
+    runner.extract(source, this.parameters.getTripleHandlerOutput());
+    this.parameters.getTripleHandlerOutput().close();
+   // out.toString("UTF-8").get
+   // out.toString("UTF-8");
+   System.out.println("SALIDA");
+    System.out.println(out.toString("UTF-8"));
+    outputStream.write(out.toByteArray());
+    
   }
 
   @Override
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23Parameters.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23Parameters.java
new file mode 100644
index 0000000..d15705a
--- /dev/null
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23Parameters.java
@@ -0,0 +1,36 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.apache.camel.dataformat.any23;
+
+import java.io.ByteArrayOutputStream;
+import org.apache.any23.writer.NTriplesWriter;
+import org.apache.any23.writer.TripleHandler;
+
+/**
+ *
+ * @author joe
+ */
+public class Any23Parameters {
+  
+private  ByteArrayOutputStream OUT;
+//public static  final TripleHandler TRIPLEHANDLER ;
+
+private TripleHandler triplehandler ;
+
+public TripleHandler getTripleHandlerOutput (){
+ return triplehandler;
+}
+
+public void setTripleHandlerOutput (TripleHandler triplehandler ){
+this.triplehandler = triplehandler;
+}
+ 
+public Any23Parameters (ByteArrayOutputStream out) {
+ this.OUT = out;
+ this.triplehandler = new NTriplesWriter(out);
+}
+  
+}
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
index c65f9e5..fe83fc1 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
@@ -34,37 +34,70 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
     @Test
     public void testUnMarshalToStringOfXml() throws Exception {
         MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
-        resultEndpoint.expectedMessageCount(2);
+        //resultEndpoint.expectedMessageCount(2);
 
       //  String badHtml = TidyMarkupTestSupport.loadFileAsString(new File(
       //          "src/test/resources/org/apache/camel/dataformat/any23/testfile1.html"));
      //   String evilHtml = TidyMarkupTestSupport.loadFileAsString(new File(
       //          "src/test/resources/org/apache/camel/dataformat/any23/testfile2-evilHtml.html"));
+      
+      String contenhtml = "<div id='hcard-JOSE-LUIS-SEGARRA-FLORES' class='vcard'> " +
+" <a class='url fn n' href='https://www.youtube.com/watch?v=kg1BljLu9YY'>  <span class='given-name'>JOSE</span> " +
+"  <span class='additional-name'>LUIS</span> " +
+"  <span class='family-name'>SEGARRA FLORES</span> " +
+"</a> " +
+" <div class='org'>TransExpress</div> " +
+" <a class='email' href='mailto:joesega7@gmail.com'>joesega7@gmail.com</a> " +
+" <div class='adr'> " +
+"  <div class='street-address'>7801 NW 37th Street Doral,  FL 33195-6503</div> " +
+"  <span class='locality'>Doral</span> " +
+",  " +
+"  <span class='region'>Florida</span> " +
+",  " +
+"  <span class='postal-code'>33195-6503</span> " +
+" " +
+"  <span class='country-name'>Estados Unidos</span> " +
+" " +
+" </div> " +
+" <div class='tel'>3055920839</div> " +
+"<p style='font-size:smaller;'>This <a href='http://microformats.org/wiki/hcard'>hCard</a> created with the <a href='http://microformats.org/code/hcard/creator'>hCard creator</a>.</p> " +
+"</div>";
+      
+      final String content = "<span class='vcard'> " +
+"  <span class='fn'>L'Amourita Pizza</span> " +
+"   Located at " +
+"  <span class='adr'> " +
+"    <span class='street-address'>123 Main St</span>, " +
+"    <span class='locality'>Albequerque</span>, " +
+"    <span class='region'>NM</span>. " +
+"  </span> " +
+"  <a href='http://pizza.example.com' class='url'>http://pizza.example.com</a> " +
+"</span>   ";
 
-        template.sendBody("direct:start", "");
+        template.sendBody("direct:start", contenhtml);
       //  template.sendBody("direct:start", evilHtml);
 
-        resultEndpoint.assertIsSatisfied();
+        //resultEndpoint.assertIsSatisfied(); 
         List<Exchange> list = resultEndpoint.getReceivedExchanges();
+         System.out.print(list.size());
         for (Exchange exchange : list) {
-            try {
+               
                 Message in = exchange.getIn();
               //  Node tidyMarkup = in.getBody(Node.class);
-
-              //  log.debug("Received " + tidyMarkup);
+                System.out.print(in.getBody(String.class));
+               log.info("Received " + in.getBody(String.class));
                // assertNotNull("Should be able to convert received body to a string", tidyMarkup);
                 
-            } catch (Exception e) {
-                fail("Failed to convert the resulting String to XML: " + e.getLocalizedMessage());
-            }
+            
         }
     } 
 
     @Override
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
-            public void configure() {
+            public void configure() { 
               from("direct:start").marshal().any23().to("mock:result");
+              //from("direct:start").unmarshal().any23().to("mock:result");
               //  from("direct:start").marshal().tidyMarkup();
               //  from("direct:start").unmarshal().tidyMarkup().to("mock:result");
             }


[camel] 07/20: Marshal RDF-XML from microformats. Default configuration of Any 23.

Posted by ac...@apache.org.
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

commit 7222a04f2360ac298111ed8c83862516db7237f6
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Mon Jul 1 00:43:31 2019 -0500

    Marshal RDF-XML from microformats. Default configuration of Any 23.
---
 components/camel-any23/pom.xml                     | 103 +++++++++++----------
 .../src/main/docs/any23-dataformat.adoc            |  12 ++-
 .../camel/dataformat/any23/Any23DataFormat.java    |  32 +++++--
 .../dataformat/any23/Any23DataFormatBasicTest.java |  61 ++----------
 .../camel/dataformat/any23/Any23TestSupport.java   |  45 +++++++++
 .../camel/dataformat/any23/microformat/vcard.html  |  65 +++++++++++++
 .../modules/ROOT/pages/any23-dataformat.adoc       |  12 ++-
 .../springboot/Any23DataFormatConfiguration.java   |  36 +++++++
 8 files changed, 251 insertions(+), 115 deletions(-)

diff --git a/components/camel-any23/pom.xml b/components/camel-any23/pom.xml
index 23cb7f0..14f7b4c 100644
--- a/components/camel-any23/pom.xml
+++ b/components/camel-any23/pom.xml
@@ -19,60 +19,65 @@
 -->
 <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
+  <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>components</artifactId>
-        <version>3.0.0-SNAPSHOT</version>
-    </parent>
+  <parent>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>components</artifactId>
+    <version>3.0.0-SNAPSHOT</version>
+  </parent>
 
-    <artifactId>camel-any23</artifactId>
-    <packaging>jar</packaging>
-    <name>Camel :: Any23</name>
-    <description>Camel Any23 support</description>
+  <artifactId>camel-any23</artifactId>
+  <packaging>jar</packaging>
+  <name>Camel :: Any23</name>
+  <description>Camel Any23 support</description>
 
-    <properties>
-    </properties>
+  <properties>
+  </properties>
 
-    <dependencies>
+  <dependencies>
 
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-support</artifactId>
-        </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-support</artifactId>
+    </dependency>
 
 
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.any23</groupId>
-            <artifactId>apache-any23-core</artifactId>
-            <version>2.3</version>
-        </dependency>
-    </dependencies>
+    <!-- test dependencies -->
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.any23</groupId>
+      <artifactId>apache-any23-core</artifactId>
+      <version>2.3</version>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.rdf4j</groupId>
+      <artifactId>rdf4j-rio-rdfxml</artifactId>
+      <version>3.0.0-M1</version>
+    </dependency>
+  </dependencies>
 </project>
diff --git a/components/camel-any23/src/main/docs/any23-dataformat.adoc b/components/camel-any23/src/main/docs/any23-dataformat.adoc
index 6ce4081..962f3a4 100644
--- a/components/camel-any23/src/main/docs/any23-dataformat.adoc
+++ b/components/camel-any23/src/main/docs/any23-dataformat.adoc
@@ -25,13 +25,17 @@ as we really don't want to turn well formed HTML into ugly HTML.
 
 
 // dataformat options: START
-The Any23 dataformat supports 1 options, which are listed below.
+The Any23 dataformat supports 5 options, which are listed below.
 
 
 
 [width="100%",cols="2s,1m,1m,6",options="header"]
 |===
 | Name | Default | Java Type | Description
+| outputFormat | MODEL | String | 
+| configurations |  | String | 
+| extractors |  | String | 
+| baseuri |  | String | 
 | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type 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.
 |===
 // dataformat options: END
@@ -51,15 +55,19 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 2 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *camel.dataformat.any23.baseuri* |  |  | String
+| *camel.dataformat.any23.configurations* |  |  | String
 | *camel.dataformat.any23.content-type-header* | Whether the data format should set the Content-Type header with the type 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.any23.enabled* | Whether to enable auto configuration of the any23 data format. This is enabled by default. |  | Boolean
+| *camel.dataformat.any23.extractors* |  |  | String
+| *camel.dataformat.any23.output-format* |  | MODEL | String
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
index 4b581c0..843a3e4 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
@@ -52,14 +52,14 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
   private static final Logger LOG = LoggerFactory.getLogger(Any23DataFormat.class);
 
   private Any23 any23;
-  private Any23OutputFormat format;
+  private Any23OutputFormat format = Any23OutputFormat.RDFXML;
   private ModifiableConfiguration conf;
   private String[] extractorsList;
 
   private String configurations;
   private String extractors;
   private String outputFormat;
-  private String documentIRI;
+  private String documentIRI = "http://mock.foo/bar";
 
   @Override
   public String getDataFormatName() {
@@ -109,14 +109,28 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
   @Override
   protected void doStart() throws Exception {
     conf = DefaultConfiguration.copy();
-    String[] newConfigs = configurations.split(";");
-    for (String con : newConfigs) {
-      String[] vals = con.split("=");
-      conf.setProperty(vals[0], vals[0]);
+    if (configurations != null) {
+      String[] newConfigs = configurations.split(";");
+      for (String con : newConfigs) {
+        String[] vals = con.split("=");
+        conf.setProperty(vals[0], vals[0]);
+      }
+    }
+    if (extractors != null) {
+      extractorsList = extractors.split(";");
+    }
+    if (configurations == null && extractors == null) {
+      any23 = new Any23();
+    } else if (configurations != null && extractors == null) {
+      any23 = new Any23(conf);
+    } else if (configurations == null && extractors != null) {
+      any23 = new Any23(extractors);
+    } else if (configurations != null && extractors != null) {
+      any23 = new Any23(conf, extractors);
+    }
+    if (outputFormat != null) {
+      format = Any23OutputFormat.valueOf(outputFormat);
     }
-    extractorsList = extractors.split(";");
-    any23 = new Any23(conf, extractors);
-    format = Any23OutputFormat.valueOf(outputFormat);
   }
 
   @Override
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
index 815fc4a..a2e6353 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatBasicTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.dataformat.any23;
 
+import java.io.File;
 import java.util.List;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
@@ -29,59 +30,16 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
   @Test
   public void testUnMarshalToStringOfXml() throws Exception {
     MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
-    //resultEndpoint.expectedMessageCount(2);
-
-    //  String badHtml = TidyMarkupTestSupport.loadFileAsString(new File(
-    //          "src/test/resources/org/apache/camel/dataformat/any23/testfile1.html"));
-    //   String evilHtml = TidyMarkupTestSupport.loadFileAsString(new File(
-    //          "src/test/resources/org/apache/camel/dataformat/any23/testfile2-evilHtml.html"));
-    String contenhtml = "<div id='hcard-JOSE-LUIS-SEGARRA-FLORES' class='vcard'> "
-        + " <a class='url fn n' href='https://www.youtube.com/watch?v=kg1BljLu9YY'>  <span class='given-name'>JOSE</span> "
-        + "  <span class='additional-name'>LUIS</span> "
-        + "  <span class='family-name'>SEGARRA FLORES</span> "
-        + "</a> "
-        + " <div class='org'>TransExpress</div> "
-        + " <a class='email' href='mailto:joesega7@gmail.com'>joesega7@gmail.com</a> "
-        + " <div class='adr'> "
-        + "  <div class='street-address'>7801 NW 37th Street Doral,  FL 33195-6503</div> "
-        + "  <span class='locality'>Doral</span> "
-        + ",  "
-        + "  <span class='region'>Florida</span> "
-        + ",  "
-        + "  <span class='postal-code'>33195-6503</span> "
-        + " "
-        + "  <span class='country-name'>Estados Unidos</span> "
-        + " "
-        + " </div> "
-        + " <div class='tel'>3055920839</div> "
-        + "<p style='font-size:smaller;'>This <a href='http://microformats.org/wiki/hcard'>hCard</a> created with the <a href='http://microformats.org/code/hcard/creator'>hCard creator</a>.</p> "
-        + "</div>";
-
-    final String content = "<span class='vcard'> "
-        + "  <span class='fn'>L'Amourita Pizza</span> "
-        + "   Located at "
-        + "  <span class='adr'> "
-        + "    <span class='street-address'>123 Main St</span>, "
-        + "    <span class='locality'>Albequerque</span>, "
-        + "    <span class='region'>NM</span>. "
-        + "  </span> "
-        + "  <a href='http://pizza.example.com' class='url'>http://pizza.example.com</a> "
-        + "</span>   ";
-
+    String contenhtml = Any23TestSupport.loadFileAsString(new File("src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html"));
     template.sendBody("direct:start", contenhtml);
-    //  template.sendBody("direct:start", evilHtml);
-
-    //resultEndpoint.assertIsSatisfied(); 
     List<Exchange> list = resultEndpoint.getReceivedExchanges();
-    System.out.print(list.size());
     for (Exchange exchange : list) {
-
       Message in = exchange.getIn();
-      //  Node tidyMarkup = in.getBody(Node.class);
-      System.out.print(in.getBody(String.class));
-      log.info("Received " + in.getBody(String.class));
-      // assertNotNull("Should be able to convert received body to a string", tidyMarkup);
-
+      String resultingRDF = in.getBody(String.class);
+      System.out.println(resultingRDF);
+      //InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
+      //Model parse = Rio.parse(toInputStream, "http://mock.foo/bar", RDFFormat.RDFXML);
+      //assertEquals(parse.size(), 10);
     }
   }
 
@@ -89,10 +47,7 @@ public class Any23DataFormatBasicTest extends CamelTestSupport {
   protected RouteBuilder createRouteBuilder() {
     return new RouteBuilder() {
       public void configure() {
-        from("direct:start").marshal().any23("http://pizza.example.com").to("mock:result");
-        //from("direct:start").unmarshal().any23().to("mock:result");
-        //  from("direct:start").marshal().tidyMarkup();
-        //  from("direct:start").unmarshal().tidyMarkup().to("mock:result");
+        from("direct:start").marshal().any23("http://mock.foo/bar").to("mock:result");
       }
     };
   }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23TestSupport.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23TestSupport.java
new file mode 100644
index 0000000..04d4f6a
--- /dev/null
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23TestSupport.java
@@ -0,0 +1,45 @@
+package org.apache.camel.dataformat.any23;
+
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import org.apache.camel.util.IOHelper;
+
+/*
+ * 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.
+ */
+public final class Any23TestSupport {
+
+  private Any23TestSupport() {
+    // Utility class
+  }
+
+  public static String loadFileAsString(File file) throws Exception {
+    StringBuilder fileContent = new StringBuilder();
+    BufferedReader input = IOHelper.buffered(new FileReader(file));
+    try {
+      String line = null;
+      while ((line = input.readLine()) != null) {
+        fileContent.append(line);
+        fileContent.append(System.lineSeparator());
+      }
+    } finally {
+      input.close();
+    }
+    return fileContent.toString();
+  }
+}
diff --git a/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html
new file mode 100644
index 0000000..c09a89b
--- /dev/null
+++ b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/microformat/vcard.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <!-- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> -->
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <meta name="robots" content="index,follow" />
+    <link rel="stylesheet" href="/styles/default.css" type="text/css" media="all" />
+    <title>Review of: Perfume: The Story of a Murderer - Reviews - Revyu.com</title>
+    <meta name="description" content="Review of Perfume: The Story of a Murderer. Rated 5/5 (Very Good) by mgaved on 14 Jan 2007. Based on Suskind's book, a historical fantasy - to call it just a murder story would be a shame as there's more in it th..." />
+    <meta name="keywords" content="cinema, film, films-from-books, france, history, movies, smells, review, reviews, revyu" />
+    <link rel="meta" type="application/rdf+xml" title="RDF/XML" href="/reviews/0b03069358e6c718167e09119f7709dc50fb3f6e/about/rdf" /><script type="text/javascript" src="http://ff.kis.v2.scr.kaspersky-labs.com/FD126C42-EBFA-4E12-B309-BB3FDD723AC1/main.js" charset="UTF-8"></script><script language="JavaScript" type="text/javascript" src="/js/popup_launcher.js">
+    </script>
+  </head>
+  <body>
+    <div id="page">
+      <div id="siteheader">
+        <span id="sitelogo"><a href="/" title="Home - Revyu.com"><img src="/images/revyu-logo.png" alt="[Revyu Logo] Revyu.com - Review Anything" border="0" style="vertical-align:middle;"/></a></span>
+        <div id="navmainlinks">
+          <h1 id="navcategorylinks"><a href="/" title="Home - Revyu.com">Home</a> | 
+            <a href="/browse/" title="Browse for Things - Revyu.com">Browse Things</a> | 
+            <a href="/search/" title="Search for Things - Revyu.com">Search Things</a> | <a href="/people/" title="People - Revyu.com">Browse People</a></h1>
+          <h2 id="navfunctionlinks"><a href="/login/" title="Login - Revyu.com">Login</a>/<a href="/register/" title="Register - Revyu.com">Register</a> | <a href="/new/" title="Start a New Review">New Review</a></h2>
+        </div>
+      </div><div id="pagecontent">
+        <div class="hreview">
+          <h1 class="summary">Review of: Perfume: The Story of a Murderer</h1>
+          <span title="Rated 5 out of 5 (Very Good)">
+            <img src="/images/fullstar.gif" class="fullstar" alt="Filled Star - Denotes One Point" /><img src="/images/fullstar.gif" class="fullstar" alt="Filled Star - Denotes One Point" /><img src="/images/fullstar.gif" class="fullstar" alt="Filled Star - Denotes One Point" /><img src="/images/fullstar.gif" class="fullstar" alt="Filled Star - Denotes One Point" /><img src="/images/fullstar.gif" class="fullstar" alt="Filled Star - Denotes One Point" />
+          </span>
+          <span class="invisible"><span class="rating">5</span>/<span class="best">5</span> (minimum <span class="worst">1</span>)</span>
+          <h2 style="display: inline">by <a href="/people/mgaved" title="mgaved" class="reviewer vcard"><span class="fn">mgaved</span></a> on <span class="dtreviewed" title="2007-01-14T05:20:08-08:00">14 Jan 2007</span></h2>
+          <p class="reviewbody description">Based on Suskind's book, a historical fantasy - to call it just a murder story would be a shame as there's more in it than that. What a lovely and challenge idea - making a film about smells - something that the author captures well in the book but I was worried wouldn't transfer well to the screen. However my fears were allayed from the  beginning. The film does a wonderful job of using amazing cinematography and soundscapes to really bring ho [...]
+            <br />
+            Quite a spooky but intriguing story, beautifully filmed. </p>
+          <p class="permalinks">Review Permalink: <a href="http://revyu.com/reviews/0b03069358e6c718167e09119f7709dc50fb3f6e" title="Permalink: Review of Perfume: The Story of a Murderer" rel="self bookmark permalink">http://revyu.com/reviews/0b03069358e6c718167e09119f7709dc50fb3f6e</a></p>
+          <h2><span class="item"><a href="/things/perfume-the-story-of-a-murderer-1168287603" title="About Perfume: The Story of a Murderer" class="url"><span class="fn">Perfume: The Story of a Murderer</span></a></span></h2>
+          <p>1 Other Review, by... <a href="/reviews/acc27764c4ceb2362ca304c11f360fd51cd3815e" title="Review of Perfume: The Story of a Murderer by Danni on 08 Jan 2007">Danni</a> <br/>Tags: <a href="/tags/cinema" title="Tag cinema" rel="tag">cinema</a> <a href="/tags/film" title="Tag film" rel="tag">film</a> <a href="/tags/films-from-books" title="Tag films-from-books" rel="tag">films-from-books</a> <a href="/tags/france" title="Tag france" rel="tag">france</a> <a href="/tags/history" t [...]
+        <p class="writereview">What do you think of <strong>Perfume: The Story of a Murderer</strong>? <a href="/review.php?stage=2&amp;origin=dp&amp;name=Perfume%3A+The+Story+of+a+Murderer&amp;url=&amp;exists=true&amp;uri=things/perfume-the-story-of-a-murderer-1168287603" title="Write a Review of Perfume: The Story of a Murderer"><strong>Write Your Own Review...</strong></a></p>
+      </div>
+      <div id="navcontext">
+        <ul><li><a href="/review.php?stage=2&amp;origin=dp&amp;name=Perfume%3A+The+Story+of+a+Murderer&amp;url=&amp;exists=true&amp;uri=things/perfume-the-story-of-a-murderer-1168287603" title="Write a Review of Perfume: The Story of a Murderer">Write a Review of<br/><strong>Perfume: The Story of a Murderer</strong></a></li><li><a href="/reviews/0b03069358e6c718167e09119f7709dc50fb3f6e/about/rdf" title="RDF/XML Metadata for this Review of Perfume: The Story of a Murderer">RDF Metadata fo [...]
+            <br/><br/><a href="/reviews/0b03069358e6c718167e09119f7709dc50fb3f6e/about/rdf" title="RDF/XML Metadata for this Review of Perfume: The Story of a Murderer"><img src="/images/rdfmeta.gif" alt="RDF Metadata" /></a></li><li>
+            <img src="/images/delicious.small.gif" alt="[del.icio.us logo]" width="10" height="10" class="savetoimg">
+              <a href="http://del.icio.us/post?url=http%3A%2F%2Frevyu.com%2Freviews%2F0b03069358e6c718167e09119f7709dc50fb3f6e%2Fabout%2Fhtml&amp;title=Review%20of%3A%20Perfume%3A%20The%20Story%20of%20a%20Murderer%20-%20Reviews%20-%20Revyu.com" onclick="window.open('http://del.icio.us/post?v=4&noui&jump=close&url=' + encodeURIComponent(location.href) + '&title=' + encodeURIComponent(document.title), 'delicious', 'toolbar=no,width=700,height=400'); return false;" title="Add this page to y [...]
+          </li></ul></div>
+    </div>
+    <p>&nbsp;</p>
+    <div id="footer">
+      <p>
+        <strong><a href="/" title="Revyu.com Home Page">Revyu.com</a>:</strong> 
+        &nbsp;
+        <a href="/site/contact/" title="Contact the Revyu.com Team">Contact</a> | 
+        <a href="/site/credits/" title="Credits">Credits</a> | 
+        <a href="/site/privacy/" title="Privacy Policy">Privacy Policy</a> | 
+        <a href="/site/disclaimer/" title="Disclaimer">Disclaimer</a>
+      </p>
+    </div>
+    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+    </script>
+    <script type="text/javascript">
+      _uacct = "UA-728407-2";
+      urchinTracker();
+    </script>
+  </body>
+</html>
diff --git a/docs/components/modules/ROOT/pages/any23-dataformat.adoc b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
index 6ce4081..962f3a4 100644
--- a/docs/components/modules/ROOT/pages/any23-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
@@ -25,13 +25,17 @@ as we really don't want to turn well formed HTML into ugly HTML.
 
 
 // dataformat options: START
-The Any23 dataformat supports 1 options, which are listed below.
+The Any23 dataformat supports 5 options, which are listed below.
 
 
 
 [width="100%",cols="2s,1m,1m,6",options="header"]
 |===
 | Name | Default | Java Type | Description
+| outputFormat | MODEL | String | 
+| configurations |  | String | 
+| extractors |  | String | 
+| baseuri |  | String | 
 | contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type 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.
 |===
 // dataformat options: END
@@ -51,15 +55,19 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 2 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *camel.dataformat.any23.baseuri* |  |  | String
+| *camel.dataformat.any23.configurations* |  |  | String
 | *camel.dataformat.any23.content-type-header* | Whether the data format should set the Content-Type header with the type 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.any23.enabled* | Whether to enable auto configuration of the any23 data format. This is enabled by default. |  | Boolean
+| *camel.dataformat.any23.extractors* |  |  | String
+| *camel.dataformat.any23.output-format* |  | MODEL | String
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
index 423812f..fdc80df 100644
--- a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatConfiguration.java
@@ -36,6 +36,10 @@ public class Any23DataFormatConfiguration
      * enabled by default.
      */
     private Boolean enabled;
+    private String outputFormat = "MODEL";
+    private String configurations;
+    private String extractors;
+    private String baseuri;
     /**
      * Whether the data format should set the Content-Type header with the type
      * from the data format if the data format is capable of doing so. For
@@ -44,6 +48,38 @@ public class Any23DataFormatConfiguration
      */
     private Boolean contentTypeHeader = false;
 
+    public String getOutputFormat() {
+        return outputFormat;
+    }
+
+    public void setOutputFormat(String outputFormat) {
+        this.outputFormat = outputFormat;
+    }
+
+    public String getConfigurations() {
+        return configurations;
+    }
+
+    public void setConfigurations(String configurations) {
+        this.configurations = configurations;
+    }
+
+    public String getExtractors() {
+        return extractors;
+    }
+
+    public void setExtractors(String extractors) {
+        this.extractors = extractors;
+    }
+
+    public String getBaseuri() {
+        return baseuri;
+    }
+
+    public void setBaseuri(String baseuri) {
+        this.baseuri = baseuri;
+    }
+
     public Boolean getContentTypeHeader() {
         return contentTypeHeader;
     }


[camel] 12/20: Restructure marshal/unmarshal Implement unmarshal Add karaf feature and test

Posted by ac...@apache.org.
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

commit f5d494f506daf66e17433131b573179408cfa3d0
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Mon Jul 22 00:53:09 2019 -0500

    Restructure marshal/unmarshal
    Implement unmarshal
    Add karaf feature and test
---
 components/camel-any23/pom.xml                     |  9 +--
 .../src/main/docs/any23-dataformat.adoc            | 27 ++-----
 .../camel/dataformat/any23/Any23DataFormat.java    | 85 +++++++++++++++++-----
 .../camel/dataformat/any23/Any23OutputFormat.java  |  2 +-
 .../camel/dataformat/any23/utils/Any23Utils.java   |  5 ++
 .../dataformat/any23/writer/RDF4JModelWriter.java  | 68 +++++++++++++++++
 .../any23/Any23DataFormatConfigurationsTest.java   |  2 +-
 .../any23/Any23DataFormatDefaultTest.java          |  8 +-
 .../any23/Any23DataFormatExtractorsTest.java       |  3 +-
 ...ltTest.java => Any23DataFormatMarshalTest.java} | 17 ++---
 ...aultTest.java => Any23DataFormatModelTest.java} | 15 ++--
 .../any23/Any23DataFormatOutputFormatTest.java     |  2 +-
 .../camel/model/dataformat/Any23DataFormat.java    |  2 +-
 .../apache/camel/model/dataformat/Any23Type.java   |  2 +-
 .../reifier/dataformat/Any23DataFormatReifier.java |  5 ++
 .../modules/ROOT/pages/any23-dataformat.adoc       | 27 ++-----
 parent/pom.xml                                     | 16 ++++
 .../karaf/features/src/main/resources/features.xml |  4 +
 .../components-starter/camel-any23-starter/pom.xml | 16 ++++
 .../camel-spring-boot-dependencies/pom.xml         | 10 +++
 .../apache/camel/itest/karaf/CamelAny23Test.java   | 23 +++---
 21 files changed, 235 insertions(+), 113 deletions(-)

diff --git a/components/camel-any23/pom.xml b/components/camel-any23/pom.xml
index 0330ca0..dcc19fc 100644
--- a/components/camel-any23/pom.xml
+++ b/components/camel-any23/pom.xml
@@ -72,17 +72,10 @@
     <dependency>
       <groupId>org.apache.any23</groupId>
       <artifactId>apache-any23-core</artifactId>
-      <version>2.3</version>
     </dependency>
     <dependency>
       <groupId>org.eclipse.rdf4j</groupId>
-      <artifactId>rdf4j-rio-rdfxml</artifactId>
-      <version>3.0.0-M1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.rdf4j</groupId>
-      <artifactId>rdf4j-rio-turtle</artifactId>
-      <version>3.0.0-M1</version>
+      <artifactId>rdf4j-runtime</artifactId>
     </dependency>
   </dependencies>
 </project>
diff --git a/components/camel-any23/src/main/docs/any23-dataformat.adoc b/components/camel-any23/src/main/docs/any23-dataformat.adoc
index 3155e14..5a8b0ad 100644
--- a/components/camel-any23/src/main/docs/any23-dataformat.adoc
+++ b/components/camel-any23/src/main/docs/any23-dataformat.adoc
@@ -1,28 +1,11 @@
 [[any23-dataformat]]
 == Any23 DataFormat
-== TidyMarkup DataFormat
-*Available as of Camel version 1.0*
-
-
-*Available as of Camel version 1.0*
-
-TidyMarkup is a Data Format that uses the
-http://www.ccil.org/~cowan/XML/tagsoup/[TagSoup] to tidy up HTML. It can
-be used to parse ugly HTML and return it as pretty wellformed HTML.
-
-*Camel eats our own -dog food- soap*
-
-We had some issues in our pdf Manual where we had some
-strange symbols. So http://janstey.blogspot.com/[Jonathan] used this
-data format to tidy up the wiki html pages that are used as base for
-rendering the pdf manuals. And then the mysterious symbols vanished.
-
-TidyMarkup only supports the *unmarshal* operation
-as we really don't want to turn well formed HTML into ugly HTML.
-
-### TidyMarkup Options
+== Any23 DataFormat
+*Available as of Camel version 3.0*
+Any23 is a Data Format that is intended to convert HTML from a site (or file) into rdf.
 
 
+### Any23 Options
 
 // dataformat options: START
 The Any23 dataformat supports 5 options, which are listed below.
@@ -32,7 +15,7 @@ The Any23 dataformat supports 5 options, which are listed below.
 [width="100%",cols="2s,1m,1m,6",options="header"]
 |===
 | Name | Default | Java Type | Description
-| outputFormat | MODEL | Any23Type | 
+| outputFormat | RDF4JMODEL | Any23Type | 
 | configurations |  | Map | 
 | extractors |  | List | 
 | baseURI |  | String | 
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
index 2400b0a..5f2abdc 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23DataFormat.java
@@ -16,25 +16,30 @@
  */
 package org.apache.camel.dataformat.any23;
 
+import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.io.OutputStreamWriter;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import org.apache.any23.Any23;
 import org.apache.any23.configuration.DefaultConfiguration;
 import org.apache.any23.configuration.ModifiableConfiguration;
-import org.apache.any23.source.DocumentSource;
-import org.apache.any23.source.StringDocumentSource;
+import org.apache.any23.source.ByteArrayDocumentSource;
 import org.apache.any23.writer.TripleHandler;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.dataformat.any23.utils.Any23Utils;
+import org.apache.camel.dataformat.any23.writer.RDF4JModelWriter;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.DataFormatName;
 import org.apache.camel.spi.annotations.Dataformat;
-import org.apache.camel.support.ExchangeHelper;
 import org.apache.camel.support.service.ServiceSupport;
+import org.apache.commons.io.IOUtils;
+import org.eclipse.rdf4j.model.Model;
+import org.eclipse.rdf4j.rio.RDFFormat;
+import org.eclipse.rdf4j.rio.Rio;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -57,6 +62,31 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
   private Any23OutputFormat outputFormat;
   private String baseURI;
 
+  public Any23DataFormat() {
+  }
+
+  public Any23DataFormat(String baseURI) {
+    this.baseURI = baseURI;
+  }
+
+  public Any23DataFormat(Any23OutputFormat outputFormat, String baseURI) {
+    this.outputFormat = outputFormat;
+    this.baseURI = baseURI;
+  }
+
+  public Any23DataFormat(Map<String, String> configurations, Any23OutputFormat outputFormat, String baseURI) {
+    this.configurations = configurations;
+    this.outputFormat = outputFormat;
+    this.baseURI = baseURI;
+  }
+
+  public Any23DataFormat(Map<String, String> configurations, List<String> extractors, Any23OutputFormat outputFormat, String baseURI) {
+    this.configurations = configurations;
+    this.extractors = extractors;
+    this.outputFormat = outputFormat;
+    this.baseURI = baseURI;
+  }
+
   @Override
   public String getDataFormatName() {
     return "any23";
@@ -66,22 +96,34 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
    * Marshal data. Generate RDF.
    */
   public void marshal(Exchange exchange, Object object, OutputStream outputStream) throws Exception {
-    final String payload = ExchangeHelper.convertToMandatoryType(exchange, String.class, object);
-    DocumentSource source = new StringDocumentSource(payload, baseURI);
-    TripleHandler handler = Any23Utils.obtainHandler(outputFormat, outputStream);
-    any23.extract(source, handler);
-    handler.close();
+    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
+    outputStreamWriter.write("<html><script type=\"application/ld+json\">\n");
+    outputStreamWriter.flush();
+    Model mdl = (Model) object;
+    Rio.write(mdl, outputStream, RDFFormat.JSONLD);
+    outputStreamWriter.write("\n</script></html>");
+    outputStreamWriter.flush();
+    outputStreamWriter.close();
+    outputStream.close();
   }
 
   /**
    * Unmarshal the data
    */
   public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
-    //TODO
-    //Under construction
-    //Looking for libraries which could perform RDF -> HTML 
-    //Candidate: https://github.com/rhizomik/redefer-rdf2html
-    return null;
+    ByteArrayDocumentSource source = new ByteArrayDocumentSource(inputStream, this.baseURI, null);
+    ByteArrayOutputStream out = new ByteArrayOutputStream();
+    TripleHandler handler = Any23Utils.obtainHandler(outputFormat, out);
+    any23.extract(source, handler);
+    handler.close();
+    Object respon;
+    if (outputFormat == Any23OutputFormat.RDF4JMODEL) {
+      respon = ((RDF4JModelWriter) handler).getModel();
+    } else {
+      respon = IOUtils.toString(out.toByteArray());
+    }
+    return respon;
+
   }
 
   @Override
@@ -100,7 +142,7 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
     }
     if (outputFormat == null) {
       //Default output format
-      outputFormat = Any23OutputFormat.RDFXML;
+      outputFormat = Any23OutputFormat.RDF4JMODEL;
     }
     if (conf == null && extrArray == null) {
       any23 = new Any23();
@@ -122,40 +164,45 @@ public class Any23DataFormat extends ServiceSupport implements DataFormat, DataF
     return any23;
   }
 
-  public void setAny23(Any23 any23) {
+  public Any23DataFormat setAny23(Any23 any23) {
     this.any23 = any23;
+    return this;
   }
 
   public Map<String, String> getConfigurations() {
     return configurations;
   }
 
-  public void setConfigurations(Map<String, String> configurations) {
+  public Any23DataFormat setConfigurations(Map<String, String> configurations) {
     this.configurations = configurations;
+    return this;
   }
 
   public List<String> getExtractors() {
     return extractors;
   }
 
-  public void setExtractors(List<String> extractors) {
+  public Any23DataFormat setExtractors(List<String> extractors) {
     this.extractors = extractors;
+    return this;
   }
 
   public Any23OutputFormat getOutputFormat() {
     return outputFormat;
   }
 
-  public void setOutputFormat(Any23OutputFormat outputFormat) {
+  public Any23DataFormat setOutputFormat(Any23OutputFormat outputFormat) {
     this.outputFormat = outputFormat;
+    return this;
   }
 
   public String getBaseURI() {
     return baseURI;
   }
 
-  public void setBaseURI(String baseURI) {
+  public Any23DataFormat setBaseURI(String baseURI) {
     this.baseURI = baseURI;
+    return this;
   }
 
 }
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java
index 3d4d12a..fa643ca 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/Any23OutputFormat.java
@@ -17,5 +17,5 @@
 package org.apache.camel.dataformat.any23;
 
 public enum Any23OutputFormat {
-  NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON
+  NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON, RDF4JMODEL
 }
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/utils/Any23Utils.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/utils/Any23Utils.java
index 6c97a5e..09537d9 100644
--- a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/utils/Any23Utils.java
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/utils/Any23Utils.java
@@ -25,6 +25,8 @@ import org.apache.any23.writer.RDFXMLWriter;
 import org.apache.any23.writer.TripleHandler;
 import org.apache.any23.writer.TurtleWriter;
 import org.apache.camel.dataformat.any23.Any23OutputFormat;
+import org.apache.camel.dataformat.any23.writer.RDF4JModelWriter;
+import org.eclipse.rdf4j.model.impl.LinkedHashModel;
 
 public class Any23Utils {
 
@@ -49,6 +51,9 @@ public class Any23Utils {
       case RDFJSON:
         handler = new JSONWriter(outputStream);
         break;
+      case RDF4JMODEL:
+        handler = new RDF4JModelWriter(new LinkedHashModel());
+        break;
       default:
         throw new AssertionError(format.name());
     }
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/writer/RDF4JModelWriter.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/writer/RDF4JModelWriter.java
new file mode 100644
index 0000000..5e60f00
--- /dev/null
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/writer/RDF4JModelWriter.java
@@ -0,0 +1,68 @@
+/*
+ * 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.dataformat.any23.writer;
+
+import org.apache.any23.writer.FormatWriter;
+import org.apache.any23.writer.TripleHandlerException;
+import org.apache.any23.writer.TripleWriterHandler;
+import org.eclipse.rdf4j.model.IRI;
+import org.eclipse.rdf4j.model.Model;
+import org.eclipse.rdf4j.model.Resource;
+import org.eclipse.rdf4j.model.Value;
+
+public class RDF4JModelWriter extends TripleWriterHandler implements FormatWriter {
+
+  private Model model;
+
+  public RDF4JModelWriter(Model model) {
+    this.model = model;
+  }
+
+  @Override
+  public void close() throws TripleHandlerException {
+    //noop
+  }
+
+  @Override
+  public void writeTriple(Resource s, IRI p, Value o, Resource g) throws TripleHandlerException {
+    model.add(s, p, o, g);
+  }
+
+  @Override
+  public void writeNamespace(String prefix, String uri) throws TripleHandlerException {
+    //noop
+  }
+
+  @Override
+  public boolean isAnnotated() {
+    return false;
+  }
+
+  @Override
+  public void setAnnotated(boolean f) {
+    //noop
+  }
+
+  public Model getModel() {
+    return model;
+  }
+
+  public void setModel(Model model) {
+    this.model = model;
+  }
+
+}
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatConfigurationsTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatConfigurationsTest.java
index d7c34dd..c18eebc 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatConfigurationsTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatConfigurationsTest.java
@@ -58,7 +58,7 @@ public class Any23DataFormatConfigurationsTest extends CamelTestSupport {
       public void configure() {
         Map<String, String> conf = new HashMap();
         conf.put("any23.extraction.metadata.nesting", "off");
-        from("direct:start").marshal().any23(BASEURI, Any23Type.TURTLE, conf).to("mock:result");
+        from("direct:start").unmarshal().any23(BASEURI, Any23Type.TURTLE, conf).to("mock:result");
       }
     };
   }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
index 244dedd..fee62a5 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
@@ -42,10 +42,8 @@ public class Any23DataFormatDefaultTest extends CamelTestSupport {
     List<Exchange> list = resultEndpoint.getReceivedExchanges();
     for (Exchange exchange : list) {
       Message in = exchange.getIn();
-      String resultingRDF = in.getBody(String.class);
-      InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
-      Model parse = Rio.parse(toInputStream, BASEURI, RDFFormat.RDFXML);
-      assertEquals(parse.size(), 28);
+      Model resultingRDF = in.getBody(Model.class);
+      assertEquals(resultingRDF.size(), 28);
     }
   }
 
@@ -53,7 +51,7 @@ public class Any23DataFormatDefaultTest extends CamelTestSupport {
   protected RouteBuilder createRouteBuilder() {
     return new RouteBuilder() {
       public void configure() {
-        from("direct:start").marshal().any23(BASEURI).to("mock:result");
+        from("direct:start").unmarshal().any23(BASEURI).to("mock:result");
       }
     };
   }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatExtractorsTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatExtractorsTest.java
index 1cf88e6..533c7e1 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatExtractorsTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatExtractorsTest.java
@@ -47,7 +47,6 @@ public class Any23DataFormatExtractorsTest extends CamelTestSupport {
     for (Exchange exchange : list) {
       Message in = exchange.getIn();
       String resultingRDF = in.getBody(String.class);
-      System.out.println(resultingRDF);
       InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
       Model parse = Rio.parse(toInputStream, BASEURI, RDFFormat.TURTLE);
       assertEquals(parse.size(), 1);
@@ -62,7 +61,7 @@ public class Any23DataFormatExtractorsTest extends CamelTestSupport {
         conf.put("any23.extraction.metadata.nesting", "off");
         List<String> extc = new ArrayList();
         extc.add("html-head-title");
-        from("direct:start").marshal().any23(BASEURI, Any23Type.TURTLE, conf, extc).to("mock:result");
+        from("direct:start").unmarshal().any23(BASEURI, Any23Type.TURTLE, conf, extc).to("mock:result");
       }
     };
   }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatMarshalTest.java
similarity index 78%
copy from components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
copy to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatMarshalTest.java
index 244dedd..e5c55e1 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatMarshalTest.java
@@ -17,20 +17,16 @@
 package org.apache.camel.dataformat.any23;
 
 import java.io.File;
-import java.io.InputStream;
 import java.util.List;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit4.CamelTestSupport;
-import org.apache.commons.io.IOUtils;
 import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.rio.RDFFormat;
-import org.eclipse.rdf4j.rio.Rio;
 import org.junit.Test;
 
-public class Any23DataFormatDefaultTest extends CamelTestSupport {
+public class Any23DataFormatMarshalTest extends CamelTestSupport {
 
   private final String BASEURI = "http://mock.foo/bar";
 
@@ -42,10 +38,8 @@ public class Any23DataFormatDefaultTest extends CamelTestSupport {
     List<Exchange> list = resultEndpoint.getReceivedExchanges();
     for (Exchange exchange : list) {
       Message in = exchange.getIn();
-      String resultingRDF = in.getBody(String.class);
-      InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
-      Model parse = Rio.parse(toInputStream, BASEURI, RDFFormat.RDFXML);
-      assertEquals(parse.size(), 28);
+      Model resultingRDF = in.getBody(Model.class);
+      assertEquals(resultingRDF.size(), 28);
     }
   }
 
@@ -53,7 +47,10 @@ public class Any23DataFormatDefaultTest extends CamelTestSupport {
   protected RouteBuilder createRouteBuilder() {
     return new RouteBuilder() {
       public void configure() {
-        from("direct:start").marshal().any23(BASEURI).to("mock:result");
+        Any23DataFormat df = new Any23DataFormat().setBaseURI(BASEURI).setOutputFormat(Any23OutputFormat.RDF4JMODEL);
+        from("direct:start").unmarshal(df).to("direct:r1");
+        from("direct:r1").marshal(df).to("direct:r2");
+        from("direct:r2").unmarshal(df).to("mock:result");
       }
     };
   }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatModelTest.java
similarity index 78%
copy from components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
copy to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatModelTest.java
index 244dedd..14ead31 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatDefaultTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatModelTest.java
@@ -17,20 +17,17 @@
 package org.apache.camel.dataformat.any23;
 
 import java.io.File;
-import java.io.InputStream;
 import java.util.List;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.model.dataformat.Any23Type;
 import org.apache.camel.test.junit4.CamelTestSupport;
-import org.apache.commons.io.IOUtils;
 import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.rio.RDFFormat;
-import org.eclipse.rdf4j.rio.Rio;
 import org.junit.Test;
 
-public class Any23DataFormatDefaultTest extends CamelTestSupport {
+public class Any23DataFormatModelTest extends CamelTestSupport {
 
   private final String BASEURI = "http://mock.foo/bar";
 
@@ -42,10 +39,8 @@ public class Any23DataFormatDefaultTest extends CamelTestSupport {
     List<Exchange> list = resultEndpoint.getReceivedExchanges();
     for (Exchange exchange : list) {
       Message in = exchange.getIn();
-      String resultingRDF = in.getBody(String.class);
-      InputStream toInputStream = IOUtils.toInputStream(resultingRDF);
-      Model parse = Rio.parse(toInputStream, BASEURI, RDFFormat.RDFXML);
-      assertEquals(parse.size(), 28);
+      Model resultingRDF = in.getBody(Model.class);
+      assertEquals(resultingRDF.size(), 28);
     }
   }
 
@@ -53,7 +48,7 @@ public class Any23DataFormatDefaultTest extends CamelTestSupport {
   protected RouteBuilder createRouteBuilder() {
     return new RouteBuilder() {
       public void configure() {
-        from("direct:start").marshal().any23(BASEURI).to("mock:result");
+        from("direct:start").unmarshal().any23(BASEURI, Any23Type.RDF4JMODEL).to("mock:result");
       }
     };
   }
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatOutputFormatTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatOutputFormatTest.java
index d00c196..ecdd9b2 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatOutputFormatTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/Any23DataFormatOutputFormatTest.java
@@ -54,7 +54,7 @@ public class Any23DataFormatOutputFormatTest extends CamelTestSupport {
   protected RouteBuilder createRouteBuilder() {
     return new RouteBuilder() {
       public void configure() {
-        from("direct:start").marshal().any23(BASEURI, Any23Type.TURTLE).to("mock:result");
+        from("direct:start").unmarshal().any23(BASEURI, Any23Type.TURTLE).to("mock:result");
       }
     };
   }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
index 2b9180e..0560836 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
@@ -35,7 +35,7 @@ import org.apache.camel.spi.Metadata;
 public class Any23DataFormat extends DataFormatDefinition {
 
   @XmlAttribute
-  @Metadata(defaultValue = "RDFXML")
+  @Metadata(defaultValue = "RDF4JMODEL")
   private Any23Type outputFormat;
   @XmlElement
   private Map<String, String> configurations;
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23Type.java b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23Type.java
index bdd0a59..1eb81b2 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23Type.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23Type.java
@@ -26,5 +26,5 @@ import javax.xml.bind.annotation.XmlType;
 @XmlEnum
 public enum Any23Type {
 
-  NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON
+  NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON, RDF4JMODEL
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
index 8f33e6a..f752ce9 100644
--- a/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
+++ b/core/camel-core/src/main/java/org/apache/camel/reifier/dataformat/Any23DataFormatReifier.java
@@ -28,6 +28,11 @@ public class Any23DataFormatReifier extends DataFormatReifier<Any23DataFormat> {
   }
 
   @Override
+  protected DataFormat doCreateDataFormat(CamelContext camelContext) {
+    return super.doCreateDataFormat(camelContext);
+  }
+
+  @Override
   protected void configureDataFormat(DataFormat dataFormat, CamelContext camelContext) {
     if (definition.getOutputFormat() != null) {
       setProperty(camelContext, dataFormat, "outputFormat", definition.getOutputFormat());
diff --git a/docs/components/modules/ROOT/pages/any23-dataformat.adoc b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
index 3155e14..5a8b0ad 100644
--- a/docs/components/modules/ROOT/pages/any23-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/any23-dataformat.adoc
@@ -1,28 +1,11 @@
 [[any23-dataformat]]
 == Any23 DataFormat
-== TidyMarkup DataFormat
-*Available as of Camel version 1.0*
-
-
-*Available as of Camel version 1.0*
-
-TidyMarkup is a Data Format that uses the
-http://www.ccil.org/~cowan/XML/tagsoup/[TagSoup] to tidy up HTML. It can
-be used to parse ugly HTML and return it as pretty wellformed HTML.
-
-*Camel eats our own -dog food- soap*
-
-We had some issues in our pdf Manual where we had some
-strange symbols. So http://janstey.blogspot.com/[Jonathan] used this
-data format to tidy up the wiki html pages that are used as base for
-rendering the pdf manuals. And then the mysterious symbols vanished.
-
-TidyMarkup only supports the *unmarshal* operation
-as we really don't want to turn well formed HTML into ugly HTML.
-
-### TidyMarkup Options
+== Any23 DataFormat
+*Available as of Camel version 3.0*
+Any23 is a Data Format that is intended to convert HTML from a site (or file) into rdf.
 
 
+### Any23 Options
 
 // dataformat options: START
 The Any23 dataformat supports 5 options, which are listed below.
@@ -32,7 +15,7 @@ The Any23 dataformat supports 5 options, which are listed below.
 [width="100%",cols="2s,1m,1m,6",options="header"]
 |===
 | Name | Default | Java Type | Description
-| outputFormat | MODEL | Any23Type | 
+| outputFormat | RDF4JMODEL | Any23Type | 
 | configurations |  | Map | 
 | extractors |  | List | 
 | baseURI |  | String | 
diff --git a/parent/pom.xml b/parent/pom.xml
index 445abf9..a91078f 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -50,6 +50,7 @@
         <antlr-bundle-version>3.5.2_1</antlr-bundle-version>
         <antlr-runtime-bundle-version>3.5.2_1</antlr-runtime-bundle-version>
         <apacheds-version>2.0.0-M24</apacheds-version>
+        <apache-any23-version>2.3</apache-any23-version>
         <apache-drill-version>1.16.0</apache-drill-version>
         <apache-gora-version>0.9</apache-gora-version>
         <apache-mime4j-version>0.8.3</apache-mime4j-version>
@@ -528,6 +529,7 @@
         <quartz-version>2.3.1</quartz-version>
         <quickfixj-version>2.1.1</quickfixj-version>
         <rabbitmq-amqp-client-version>5.7.3</rabbitmq-amqp-client-version>
+        <rdf4j-version>3.0.0-M1</rdf4j-version>
         <reactive-streams-version>1.0.2</reactive-streams-version>
         <reactor-version>3.2.11.RELEASE</reactor-version>
         <reflections-bundle-version>0.9.11_1</reflections-bundle-version>
@@ -4892,6 +4894,20 @@
                 <artifactId>tagsoup</artifactId>
                 <version>${tagsoup-version}</version>
             </dependency>
+            
+            <!-- optional Any23 -->
+            <dependency>
+                <groupId>org.apache.any23</groupId>
+                <artifactId>apache-any23-core</artifactId>
+                <version>${apache-any23-version}</version>
+            </dependency>
+            
+            <!-- optional RDF4J -->
+            <dependency>
+                <groupId>org.eclipse.rdf4j</groupId>
+                <artifactId>rdf4j-runtime</artifactId>
+                <version>${rdf4j-version}</version>
+            </dependency>
 
             <!-- optional Axiom -->
             <dependency>
diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml
index 9188304..adcebd3 100644
--- a/platforms/karaf/features/src/main/resources/features.xml
+++ b/platforms/karaf/features/src/main/resources/features.xml
@@ -170,6 +170,10 @@
     <bundle dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
     <bundle>mvn:org.apache.camel/camel-amqp/${project.version}</bundle>
   </feature>
+  <feature name='camel-any23' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-any23/${project.version}</bundle>
+  </feature>
   <feature name='camel-apns' version='${project.version}' start-level='50'>
     <feature version='${project.version}'>camel-core</feature>
     <bundle dependency='true'>mvn:org.apache.mina/mina-core/${mina-version}</bundle>
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml b/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
index 3bb59a6..801bc39 100644
--- a/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
@@ -38,6 +38,22 @@
       <groupId>org.apache.camel</groupId>
       <artifactId>camel-any23</artifactId>
       <version>${project.version}</version>
+      <!--START OF GENERATED CODE-->
+      <exclusions>
+        <exclusion>
+          <groupId>ch.qos.logback</groupId>
+          <artifactId>logback-classic</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>ch.qos.logback</groupId>
+          <artifactId>logback-core</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+      </exclusions>
+      <!--END OF GENERATED CODE-->
     </dependency>
     <!--START OF GENERATED CODE-->
     <dependency>
diff --git a/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml b/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
index 3764ce2..3f1bc85 100644
--- a/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
+++ b/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml
@@ -226,6 +226,11 @@
         <version>1.1.3</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.any23</groupId>
+        <artifactId>apache-any23-core</artifactId>
+        <version>2.3</version>
+      </dependency>
+      <dependency>
         <groupId>org.apache.avro</groupId>
         <artifactId>avro</artifactId>
         <version>1.8.2</version>
@@ -3761,6 +3766,11 @@
         </exclusions>
       </dependency>
       <dependency>
+        <groupId>org.eclipse.rdf4j</groupId>
+        <artifactId>rdf4j-runtime</artifactId>
+        <version>3.0.0-M1</version>
+      </dependency>
+      <dependency>
         <groupId>org.hamcrest</groupId>
         <artifactId>java-hamcrest</artifactId>
         <version>2.0.0.0</version>
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23Type.java b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelAny23Test.java
similarity index 67%
copy from core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23Type.java
copy to tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelAny23Test.java
index bdd0a59..0415345 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23Type.java
+++ b/tests/camel-itest-karaf/src/test/java/org/apache/camel/itest/karaf/CamelAny23Test.java
@@ -14,17 +14,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.model.dataformat;
+package org.apache.camel.itest.karaf;
 
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlType;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.junit.PaxExam;
 
-/**
- * Represents the different types of bindy data formats.
- */
-@XmlType
-@XmlEnum
-public enum Any23Type {
+@RunWith(PaxExam.class)
+public class CamelAny23Test extends BaseKarafTest {
+
+  public static final String COMPONENT = extractName(CamelAny23Test.class);
+
+  @Test
+  public void test() throws Exception {
+    testDataFormat(COMPONENT, "any23");
+  }
 
-  NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON
 }


[camel] 03/20: basic structure any23

Posted by ac...@apache.org.
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

commit d2ff724f8cc669adb06089aaec2ffdbbef5738ca
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Sun Jun 9 15:33:46 2019 -0500

    basic structure any23
---
 .../TidyMarkupDataFormatAsDomNodeTest.java         |  2 +-
 .../TidyMarkupDataFormatWithUnmarshalTypeTest.java |  4 ++--
 .../{tagsoup => any23}/TidyMarkupTestSupport.java  |  2 +-
 .../any23DataFormatBasicTest.java}                 | 24 +++++++++++-----------
 .../camel/model/dataformat/Any23DataFormat.java    |  4 ++++
 5 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsDomNodeTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatAsDomNodeTest.java
similarity index 98%
rename from components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsDomNodeTest.java
rename to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatAsDomNodeTest.java
index 06aa8ae..1f38ff2 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsDomNodeTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatAsDomNodeTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.dataformat.tagsoup;
+package org.apache.camel.dataformat.any23;
 
 import java.io.File;
 import java.util.List;
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatWithUnmarshalTypeTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatWithUnmarshalTypeTest.java
similarity index 90%
rename from components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatWithUnmarshalTypeTest.java
rename to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatWithUnmarshalTypeTest.java
index 77ed3ae..a99664e 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatWithUnmarshalTypeTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupDataFormatWithUnmarshalTypeTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.dataformat.tagsoup;
+package org.apache.camel.dataformat.any23;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.model.dataformat.TidyMarkupDataFormat;
@@ -22,7 +22,7 @@ import org.apache.camel.model.dataformat.TidyMarkupDataFormat;
 /*
  * This just tests whether this dataformat is available to UnmarshalType
  */
-public class TidyMarkupDataFormatWithUnmarshalTypeTest extends TidyMarkupDataFormatAsStringTest {
+public class TidyMarkupDataFormatWithUnmarshalTypeTest extends any23DataFormatBasicTest {
 
     @Override
     protected RouteBuilder createRouteBuilder() {
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupTestSupport.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupTestSupport.java
similarity index 98%
rename from components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupTestSupport.java
rename to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupTestSupport.java
index 2b53585..7048373 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupTestSupport.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/TidyMarkupTestSupport.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.dataformat.tagsoup;
+package org.apache.camel.dataformat.any23;
 
 import java.io.BufferedReader;
 import java.io.File;
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsStringTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/any23DataFormatBasicTest.java
similarity index 73%
rename from components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsStringTest.java
rename to components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/any23DataFormatBasicTest.java
index 83e672c..e0305bd 100644
--- a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsStringTest.java
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/any23/any23DataFormatBasicTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.dataformat.tagsoup;
+package org.apache.camel.dataformat.any23;
 
 import java.io.File;
 import java.util.List;
@@ -29,36 +29,36 @@ import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Test;
 
 
-public class TidyMarkupDataFormatAsStringTest extends CamelTestSupport {
+public class any23DataFormatBasicTest extends CamelTestSupport {
    
     @Test
     public void testUnMarshalToStringOfXml() throws Exception {
         MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
         resultEndpoint.expectedMessageCount(2);
 
-        String badHtml = TidyMarkupTestSupport.loadFileAsString(new File(
-                "src/test/resources/org/apache/camel/dataformat/tagsoup/testfile1.html"));
-        String evilHtml = TidyMarkupTestSupport.loadFileAsString(new File(
-                "src/test/resources/org/apache/camel/dataformat/tagsoup/testfile2-evilHtml.html"));
+      //  String badHtml = TidyMarkupTestSupport.loadFileAsString(new File(
+      //          "src/test/resources/org/apache/camel/dataformat/any23/testfile1.html"));
+     //   String evilHtml = TidyMarkupTestSupport.loadFileAsString(new File(
+      //          "src/test/resources/org/apache/camel/dataformat/any23/testfile2-evilHtml.html"));
 
-        template.sendBody("direct:start", badHtml);
-        template.sendBody("direct:start", evilHtml);
+        template.sendBody("direct:start", "");
+      //  template.sendBody("direct:start", evilHtml);
 
         resultEndpoint.assertIsSatisfied();
         List<Exchange> list = resultEndpoint.getReceivedExchanges();
         for (Exchange exchange : list) {
             try {
                 Message in = exchange.getIn();
-                Node tidyMarkup = in.getBody(Node.class);
+              //  Node tidyMarkup = in.getBody(Node.class);
 
-                log.debug("Received " + tidyMarkup);
-                assertNotNull("Should be able to convert received body to a string", tidyMarkup);
+              //  log.debug("Received " + tidyMarkup);
+               // assertNotNull("Should be able to convert received body to a string", tidyMarkup);
                 
             } catch (Exception e) {
                 fail("Failed to convert the resulting String to XML: " + e.getLocalizedMessage());
             }
         }
-    }
+    } 
 
     @Override
     protected RouteBuilder createRouteBuilder() {
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
index 7dde517..af3596a 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
@@ -35,5 +35,9 @@ import org.apache.camel.spi.Metadata;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class Any23DataFormat extends DataFormatDefinition {
    
+    public Any23DataFormat() {
+        super("any23");
+        
+    }
 
 }
\ No newline at end of file


[camel] 09/20: merge last camel version with any23 component

Posted by ac...@apache.org.
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

commit 22ae8ce93a1e2baddf6de920bebbbfbe855e16a7
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Sat Jul 6 23:07:58 2019 -0500

    merge last camel version with any23 component
---
 .../src/main/docs/browse-component.adoc            |  1 -
 .../src/main/docs/controlbus-component.adoc        |  1 -
 .../src/main/docs/dataformat-component.adoc        |  1 -
 .../src/main/docs/direct-component.adoc            |  1 -
 .../src/main/docs/direct-vm-component.adoc         |  1 -
 .../camel-log/src/main/docs/log-component.adoc     |  1 -
 .../camel-ref/src/main/docs/ref-component.adoc     |  1 -
 .../camel-saga/src/main/docs/saga-component.adoc   |  1 -
 .../camel-seda/src/main/docs/seda-component.adoc   |  1 -
 .../camel-stub/src/main/docs/stub-component.adoc   |  1 -
 .../src/main/docs/validator-component.adoc         |  1 -
 .../camel-vm/src/main/docs/vm-component.adoc       |  1 -
 .../camel-xslt/src/main/docs/xslt-component.adoc   |  1 -
 .../endpoint/dsl/BrowseEndpointBuilderFactory.java | 40 ----------------------
 .../dsl/DataSetEndpointBuilderFactory.java         |  2 +-
 .../endpoint/dsl/DirectEndpointBuilderFactory.java | 40 ----------------------
 .../dsl/DirectVmEndpointBuilderFactory.java        | 40 ----------------------
 .../endpoint/dsl/RefEndpointBuilderFactory.java    | 40 ----------------------
 .../endpoint/dsl/SedaEndpointBuilderFactory.java   | 40 ----------------------
 .../endpoint/dsl/StubEndpointBuilderFactory.java   | 40 ----------------------
 .../endpoint/dsl/VmEndpointBuilderFactory.java     | 40 ----------------------
 21 files changed, 1 insertion(+), 294 deletions(-)

diff --git a/components/camel-browse/src/main/docs/browse-component.adoc b/components/camel-browse/src/main/docs/browse-component.adoc
index f9a6cce..fde908d 100644
--- a/components/camel-browse/src/main/docs/browse-component.adoc
+++ b/components/camel-browse/src/main/docs/browse-component.adoc
@@ -63,7 +63,6 @@ with the following path and query parameters:
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 |===
diff --git a/components/camel-controlbus/src/main/docs/controlbus-component.adoc b/components/camel-controlbus/src/main/docs/controlbus-component.adoc
index c9197fc..330d620 100644
--- a/components/camel-controlbus/src/main/docs/controlbus-component.adoc
+++ b/components/camel-controlbus/src/main/docs/controlbus-component.adoc
@@ -94,7 +94,6 @@ with the following path and query parameters:
 | Name | Description | Default | Type
 | *action* (producer) | To denote an action that can be either: start, stop, or status. To either start or stop a route, or to get the status of the route as output in the message body. You can use suspend and resume from Camel 2.11.1 onwards to either suspend or resume a route. And from Camel 2.11.1 onwards you can use stats to get performance statics returned in XML format; the routeId option can be used to define which route to get the performance stats for, if routeId is not defined, [...]
 | *async* (producer) | Whether to execute the control bus task asynchronously. Important: If this option is enabled, then any result from the task is not set on the Exchange. This is only possible if executing tasks synchronously. | false | boolean
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *loggingLevel* (producer) | Logging level used for logging when task is done, or if any exceptions occurred during processing the task. | INFO | LoggingLevel
 | *restartDelay* (producer) | The delay in millis to use when restarting a route. | 1000 | int
 | *routeId* (producer) | To specify a route by its id. The special keyword current indicates the current route. |  | String
diff --git a/components/camel-dataformat/src/main/docs/dataformat-component.adoc b/components/camel-dataformat/src/main/docs/dataformat-component.adoc
index badbcec..53bcf31 100644
--- a/components/camel-dataformat/src/main/docs/dataformat-component.adoc
+++ b/components/camel-dataformat/src/main/docs/dataformat-component.adoc
@@ -62,7 +62,6 @@ with the following path and query parameters:
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 |===
diff --git a/components/camel-direct/src/main/docs/direct-component.adoc b/components/camel-direct/src/main/docs/direct-component.adoc
index 6fa7ecb..0f0b97a 100644
--- a/components/camel-direct/src/main/docs/direct-component.adoc
+++ b/components/camel-direct/src/main/docs/direct-component.adoc
@@ -76,7 +76,6 @@ with the following path and query parameters:
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
 | *block* (producer) | If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active. | true | boolean
 | *failIfNoConsumers* (producer) | Whether the producer should fail by throwing an exception, when sending to a DIRECT endpoint with no active consumers. | false | boolean
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *timeout* (producer) | The timeout value to use if block is enabled. | 30000 | long
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
diff --git a/components/camel-directvm/src/main/docs/direct-vm-component.adoc b/components/camel-directvm/src/main/docs/direct-vm-component.adoc
index f05c78d..6374afd 100644
--- a/components/camel-directvm/src/main/docs/direct-vm-component.adoc
+++ b/components/camel-directvm/src/main/docs/direct-vm-component.adoc
@@ -89,7 +89,6 @@ with the following path and query parameters:
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
 | *block* (producer) | If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active. | true | boolean
 | *failIfNoConsumers* (producer) | Whether the producer should fail by throwing an exception, when sending to a Direct-VM endpoint with no active consumers. | false | boolean
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *timeout* (producer) | The timeout value to use if block is enabled. | 30000 | long
 | *headerFilterStrategy* (producer) | Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none. |  | HeaderFilterStrategy
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-log/src/main/docs/log-component.adoc b/components/camel-log/src/main/docs/log-component.adoc
index 23a7668..0bc0ae6 100644
--- a/components/camel-log/src/main/docs/log-component.adoc
+++ b/components/camel-log/src/main/docs/log-component.adoc
@@ -103,7 +103,6 @@ with the following path and query parameters:
 | *groupDelay* (producer) | Set the initial delay for stats (in millis) |  | Long
 | *groupInterval* (producer) | If specified will group message stats by this time interval (in millis) |  | Long
 | *groupSize* (producer) | An integer that specifies a group size for throughput logging. |  | Integer
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *level* (producer) | Logging level to use. The default value is INFO. | INFO | String
 | *logMask* (producer) | If true, mask sensitive information like password or passphrase in the log. |  | Boolean
 | *marker* (producer) | An optional Marker name to use. |  | String
diff --git a/components/camel-ref/src/main/docs/ref-component.adoc b/components/camel-ref/src/main/docs/ref-component.adoc
index 83c8427..670291c 100644
--- a/components/camel-ref/src/main/docs/ref-component.adoc
+++ b/components/camel-ref/src/main/docs/ref-component.adoc
@@ -61,7 +61,6 @@ with the following path and query parameters:
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 |===
diff --git a/components/camel-saga/src/main/docs/saga-component.adoc b/components/camel-saga/src/main/docs/saga-component.adoc
index 4db0a8f..001c30c 100644
--- a/components/camel-saga/src/main/docs/saga-component.adoc
+++ b/components/camel-saga/src/main/docs/saga-component.adoc
@@ -57,7 +57,6 @@ with the following path and query parameters:
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 |===
diff --git a/components/camel-seda/src/main/docs/seda-component.adoc b/components/camel-seda/src/main/docs/seda-component.adoc
index 37219bd..fc05cbf 100644
--- a/components/camel-seda/src/main/docs/seda-component.adoc
+++ b/components/camel-seda/src/main/docs/seda-component.adoc
@@ -93,7 +93,6 @@ with the following path and query parameters:
 | *blockWhenFull* (producer) | Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted. | false | boolean
 | *discardIfNoConsumers* (producer) | Whether the producer should discard the message (do not add the message to the queue), when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
 | *failIfNoConsumers* (producer) | Whether the producer should fail by throwing an exception, when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *offerTimeout* (producer) | offerTimeout (in milliseconds) can be added to the block case when queue is full. You can disable timeout by using 0 or a negative value. |  | long
 | *timeout* (producer) | Timeout (in milliseconds) before a SEDA producer will stop waiting for an asynchronous task to complete. You can disable timeout by using 0 or a negative value. | 30000 | long
 | *waitForTaskToComplete* (producer) | Option to specify whether the caller should wait for the async task to complete or not before continuing. The following three options are supported: Always, Never or IfReplyExpected. The first two values are self-explanatory. The last value, IfReplyExpected, will only wait if the message is Request Reply based. The default option is IfReplyExpected. | IfReplyExpected | WaitForTaskToComplete
diff --git a/components/camel-stub/src/main/docs/stub-component.adoc b/components/camel-stub/src/main/docs/stub-component.adoc
index 16e321f..f3cc091 100644
--- a/components/camel-stub/src/main/docs/stub-component.adoc
+++ b/components/camel-stub/src/main/docs/stub-component.adoc
@@ -83,7 +83,6 @@ with the following path and query parameters:
 | *blockWhenFull* (producer) | Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted. | false | boolean
 | *discardIfNoConsumers* (producer) | Whether the producer should discard the message (do not add the message to the queue), when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
 | *failIfNoConsumers* (producer) | Whether the producer should fail by throwing an exception, when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *offerTimeout* (producer) | offerTimeout (in milliseconds) can be added to the block case when queue is full. You can disable timeout by using 0 or a negative value. |  | long
 | *timeout* (producer) | Timeout (in milliseconds) before a SEDA producer will stop waiting for an asynchronous task to complete. You can disable timeout by using 0 or a negative value. | 30000 | long
 | *waitForTaskToComplete* (producer) | Option to specify whether the caller should wait for the async task to complete or not before continuing. The following three options are supported: Always, Never or IfReplyExpected. The first two values are self-explanatory. The last value, IfReplyExpected, will only wait if the message is Request Reply based. The default option is IfReplyExpected. | IfReplyExpected | WaitForTaskToComplete
diff --git a/components/camel-validator/src/main/docs/validator-component.adoc b/components/camel-validator/src/main/docs/validator-component.adoc
index 50617ce..0bec4d9 100644
--- a/components/camel-validator/src/main/docs/validator-component.adoc
+++ b/components/camel-validator/src/main/docs/validator-component.adoc
@@ -80,7 +80,6 @@ with the following path and query parameters:
 | *failOnNullBody* (producer) | Whether to fail if no body exists. | true | boolean
 | *failOnNullHeader* (producer) | Whether to fail if no header exists when validating against a header. | true | boolean
 | *headerName* (producer) | To validate against a header instead of the message body. |  | String
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *errorHandler* (advanced) | To use a custom org.apache.camel.processor.validation.ValidatorErrorHandler. The default error handler captures the errors and throws an exception. |  | ValidatorErrorHandler
 | *resourceResolver* (advanced) | To use a custom LSResourceResolver. See also setResourceResolverFactory(ValidatorResourceResolverFactory) |  | LSResourceResolver
diff --git a/components/camel-vm/src/main/docs/vm-component.adoc b/components/camel-vm/src/main/docs/vm-component.adoc
index dcb1fde..ebf0120 100644
--- a/components/camel-vm/src/main/docs/vm-component.adoc
+++ b/components/camel-vm/src/main/docs/vm-component.adoc
@@ -96,7 +96,6 @@ with the following path and query parameters:
 | *blockWhenFull* (producer) | Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted. | false | boolean
 | *discardIfNoConsumers* (producer) | Whether the producer should discard the message (do not add the message to the queue), when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
 | *failIfNoConsumers* (producer) | Whether the producer should fail by throwing an exception, when sending to a queue with no active consumers. Only one of the options discardIfNoConsumers and failIfNoConsumers can be enabled at the same time. | false | boolean
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *offerTimeout* (producer) | offerTimeout (in milliseconds) can be added to the block case when queue is full. You can disable timeout by using 0 or a negative value. |  | long
 | *timeout* (producer) | Timeout (in milliseconds) before a SEDA producer will stop waiting for an asynchronous task to complete. You can disable timeout by using 0 or a negative value. | 30000 | long
 | *waitForTaskToComplete* (producer) | Option to specify whether the caller should wait for the async task to complete or not before continuing. The following three options are supported: Always, Never or IfReplyExpected. The first two values are self-explanatory. The last value, IfReplyExpected, will only wait if the message is Request Reply based. The default option is IfReplyExpected. | IfReplyExpected | WaitForTaskToComplete
diff --git a/components/camel-xslt/src/main/docs/xslt-component.adoc b/components/camel-xslt/src/main/docs/xslt-component.adoc
index e4b1a5218..13a41c5 100644
--- a/components/camel-xslt/src/main/docs/xslt-component.adoc
+++ b/components/camel-xslt/src/main/docs/xslt-component.adoc
@@ -88,7 +88,6 @@ with the following path and query parameters:
 | *contentCache* (producer) | Cache for the resource content (the stylesheet file) when it is loaded. If set to false Camel will reload the stylesheet file on each message processing. This is good for development. A cached stylesheet can be forced to reload at runtime via JMX using the clearCachedStylesheet operation. | true | boolean
 | *deleteOutputFile* (producer) | If you have output=file then this option dictates whether or not the output file should be deleted when the Exchange is done processing. For example suppose the output file is a temporary file, then it can be a good idea to delete it after use. | false | boolean
 | *failOnNullBody* (producer) | Whether or not to throw an exception if the input body is null. | true | boolean
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *output* (producer) | Option to specify which output type to use. Possible values are: string, bytes, DOM, file. The first three options are all in memory based, where as file is streamed directly to a java.io.File. For file you must specify the filename in the IN header with the key Exchange.XSLT_FILE_NAME which is also CamelXsltFileName. Also any paths leading to the filename must be created beforehand, otherwise an exception is thrown at runtime. | string | XsltOutput
 | *saxon* (producer) | Whether to use Saxon as the transformerFactoryClass. If enabled then the class net.sf.saxon.TransformerFactoryImpl. You would need to add Saxon to the classpath. | false | boolean
 | *transformerCacheSize* (producer) | The number of javax.xml.transform.Transformer object that are cached for reuse to avoid calls to Template.newTransformer(). | 0 | int
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/BrowseEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/BrowseEndpointBuilderFactory.java
index 5e0b7df..d9c39e6 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/BrowseEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/BrowseEndpointBuilderFactory.java
@@ -209,46 +209,6 @@ public interface BrowseEndpointBuilderFactory {
         default AdvancedBrowseEndpointProducerBuilder advanced() {
             return (AdvancedBrowseEndpointProducerBuilder) this;
         }
-        /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option is a: <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default BrowseEndpointProducerBuilder lazyStartProducer(
-                boolean lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option will be converted to a <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default BrowseEndpointProducerBuilder lazyStartProducer(
-                String lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
     }
 
     /**
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DataSetEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DataSetEndpointBuilderFactory.java
index f56d310..8adb756 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DataSetEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DataSetEndpointBuilderFactory.java
@@ -814,4 +814,4 @@ public interface DataSetEndpointBuilderFactory {
         }
         return new DataSetEndpointBuilderImpl(path);
     }
-}
\ No newline at end of file
+}
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectEndpointBuilderFactory.java
index bb7ca5c..88ab34d 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectEndpointBuilderFactory.java
@@ -262,46 +262,6 @@ public interface DirectEndpointBuilderFactory {
             return this;
         }
         /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option is a: <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default DirectEndpointProducerBuilder lazyStartProducer(
-                boolean lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option will be converted to a <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default DirectEndpointProducerBuilder lazyStartProducer(
-                String lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
          * The timeout value to use if block is enabled.
          * 
          * The option is a: <code>long</code> type.
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectVmEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectVmEndpointBuilderFactory.java
index 8ab01c3..11efea0 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectVmEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/DirectVmEndpointBuilderFactory.java
@@ -289,46 +289,6 @@ public interface DirectVmEndpointBuilderFactory {
             return this;
         }
         /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option is a: <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default DirectVmEndpointProducerBuilder lazyStartProducer(
-                boolean lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option will be converted to a <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default DirectVmEndpointProducerBuilder lazyStartProducer(
-                String lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
          * The timeout value to use if block is enabled.
          * 
          * The option is a: <code>long</code> type.
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/RefEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/RefEndpointBuilderFactory.java
index 269dfb8..ca6d158 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/RefEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/RefEndpointBuilderFactory.java
@@ -209,46 +209,6 @@ public interface RefEndpointBuilderFactory {
         default AdvancedRefEndpointProducerBuilder advanced() {
             return (AdvancedRefEndpointProducerBuilder) this;
         }
-        /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option is a: <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default RefEndpointProducerBuilder lazyStartProducer(
-                boolean lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option will be converted to a <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default RefEndpointProducerBuilder lazyStartProducer(
-                String lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
     }
 
     /**
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/SedaEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/SedaEndpointBuilderFactory.java
index 31d6c21..5708c0d 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/SedaEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/SedaEndpointBuilderFactory.java
@@ -523,46 +523,6 @@ public interface SedaEndpointBuilderFactory {
             return this;
         }
         /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option is a: <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default SedaEndpointProducerBuilder lazyStartProducer(
-                boolean lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option will be converted to a <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default SedaEndpointProducerBuilder lazyStartProducer(
-                String lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
          * offerTimeout (in milliseconds) can be added to the block case when
          * queue is full. You can disable timeout by using 0 or a negative
          * value.
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/StubEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/StubEndpointBuilderFactory.java
index 969b9ba..bc923ef 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/StubEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/StubEndpointBuilderFactory.java
@@ -523,46 +523,6 @@ public interface StubEndpointBuilderFactory {
             return this;
         }
         /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option is a: <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default StubEndpointProducerBuilder lazyStartProducer(
-                boolean lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option will be converted to a <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default StubEndpointProducerBuilder lazyStartProducer(
-                String lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
          * offerTimeout (in milliseconds) can be added to the block case when
          * queue is full. You can disable timeout by using 0 or a negative
          * value.
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/VmEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/VmEndpointBuilderFactory.java
index b7e9a02..9f87f922 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/VmEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/VmEndpointBuilderFactory.java
@@ -521,46 +521,6 @@ public interface VmEndpointBuilderFactory {
             return this;
         }
         /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option is a: <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default VmEndpointProducerBuilder lazyStartProducer(
-                boolean lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
-         * Whether the producer should be started lazy (on the first message).
-         * By starting lazy you can use this to allow CamelContext and routes to
-         * startup in situations where a producer may otherwise fail during
-         * starting and cause the route to fail being started. By deferring this
-         * startup to be lazy then the startup failure can be handled during
-         * routing messages via Camel's routing error handlers. Beware that when
-         * the first message is processed then creating and starting the
-         * producer may take a little time and prolong the total processing time
-         * of the processing.
-         * 
-         * The option will be converted to a <code>boolean</code> type.
-         * 
-         * Group: producer
-         */
-        default VmEndpointProducerBuilder lazyStartProducer(
-                String lazyStartProducer) {
-            setProperty("lazyStartProducer", lazyStartProducer);
-            return this;
-        }
-        /**
          * offerTimeout (in milliseconds) can be added to the block case when
          * queue is full. You can disable timeout by using 0 or a negative
          * value.


[camel] 16/20: fix karaf support

Posted by ac...@apache.org.
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

commit f158bd5680c8c2d9bcb430ddcc27d5f1b61f1e19
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Fri Aug 9 23:00:09 2019 -0500

    fix karaf support
---
 components/camel-any23/pom.xml                             |  6 +++++-
 parent/pom.xml                                             | 14 +++++++++++---
 .../karaf/features/src/main/resources/bundles.properties   |  1 +
 platforms/karaf/features/src/main/resources/features.xml   |  4 ++++
 4 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/components/camel-any23/pom.xml b/components/camel-any23/pom.xml
index 9e10141..0788dfb 100644
--- a/components/camel-any23/pom.xml
+++ b/components/camel-any23/pom.xml
@@ -75,7 +75,11 @@
     </dependency>
     <dependency>
       <groupId>org.eclipse.rdf4j</groupId>
-      <artifactId>rdf4j-runtime</artifactId>
+      <artifactId>rdf4j-model</artifactId>
+    </dependency>
+     <dependency>
+      <groupId>org.eclipse.rdf4j</groupId>
+      <artifactId>rdf4j-rio-api</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.camel</groupId>
diff --git a/parent/pom.xml b/parent/pom.xml
index a91078f..e54f126 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -49,6 +49,7 @@
         <ant-bundle-version>1.7.0_6</ant-bundle-version>
         <antlr-bundle-version>3.5.2_1</antlr-bundle-version>
         <antlr-runtime-bundle-version>3.5.2_1</antlr-runtime-bundle-version>
+        <any23-bundle-version>2.3_1-SNAPSHOT</any23-bundle-version>
         <apacheds-version>2.0.0-M24</apacheds-version>
         <apache-any23-version>2.3</apache-any23-version>
         <apache-drill-version>1.16.0</apache-drill-version>
@@ -529,7 +530,8 @@
         <quartz-version>2.3.1</quartz-version>
         <quickfixj-version>2.1.1</quickfixj-version>
         <rabbitmq-amqp-client-version>5.7.3</rabbitmq-amqp-client-version>
-        <rdf4j-version>3.0.0-M1</rdf4j-version>
+        <rdf4j-rio-version>2.4.4</rdf4j-rio-version>
+        <rdf4j-model-version>2.4.4</rdf4j-model-version>
         <reactive-streams-version>1.0.2</reactive-streams-version>
         <reactor-version>3.2.11.RELEASE</reactor-version>
         <reflections-bundle-version>0.9.11_1</reflections-bundle-version>
@@ -4905,8 +4907,14 @@
             <!-- optional RDF4J -->
             <dependency>
                 <groupId>org.eclipse.rdf4j</groupId>
-                <artifactId>rdf4j-runtime</artifactId>
-                <version>${rdf4j-version}</version>
+                <artifactId>rdf4j-model</artifactId>
+                <version>${rdf4j-model-version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.eclipse.rdf4j</groupId>
+                <artifactId>rdf4j-rio-api</artifactId>
+                <version>${rdf4j-rio-version}</version>
             </dependency>
 
             <!-- optional Axiom -->
diff --git a/platforms/karaf/features/src/main/resources/bundles.properties b/platforms/karaf/features/src/main/resources/bundles.properties
index 69de20d..aaca147 100644
--- a/platforms/karaf/features/src/main/resources/bundles.properties
+++ b/platforms/karaf/features/src/main/resources/bundles.properties
@@ -30,6 +30,7 @@ org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${ser
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.abdera/${abdera-bundle-version}/jar
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${ant-bundle-version}/jar
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/${antlr-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.any23/${any23-bundle-version}/jar
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.asm/${asm-bundle-version}/jar
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-beanutils/${commons-beanutils-version}/jar
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/${commons-httpclient-bundle-version}/jar
diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml
index adcebd3..04ae6c2 100644
--- a/platforms/karaf/features/src/main/resources/features.xml
+++ b/platforms/karaf/features/src/main/resources/features.xml
@@ -172,6 +172,10 @@
   </feature>
   <feature name='camel-any23' version='${project.version}' start-level='50'>
     <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.any23/${any23-bundle-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:commons.io/commons.io/${commons-io-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.eclipse.rdf4j/rdf4j-model/${rdf4j-model-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.eclipse.rdf4j/rdf4j-rio-api/${rdf4j-rio-version}</bundle>
     <bundle>mvn:org.apache.camel/camel-any23/${project.version}</bundle>
   </feature>
   <feature name='camel-apns' version='${project.version}' start-level='50'>


[camel] 01/20: base structure camel-any23 dataformat

Posted by ac...@apache.org.
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

commit 0b7fad12c5e0f09dffb7e164155f7dd47c4809a1
Author: Roberto Flores <be...@gmail.com>
AuthorDate: Thu Jun 6 12:29:49 2019 -0500

    base structure camel-any23 dataformat
---
 components/camel-any23/pom.xml                     |  73 ++++++++
 .../src/main/docs/any23-dataformat.adoc            | 111 +++++++++++
 .../camel/dataformat/any23/any23DataFormat.java    |  85 +++++++++
 .../tagsoup/TidyMarkupDataFormatAsDomNodeTest.java |  82 +++++++++
 .../tagsoup/TidyMarkupDataFormatAsStringTest.java  |  72 ++++++++
 .../TidyMarkupDataFormatWithUnmarshalTypeTest.java |  37 ++++
 .../dataformat/tagsoup/TidyMarkupTestSupport.java  |  86 +++++++++
 .../src/test/resources/log4j2.properties           |  28 +++
 .../apache/camel/dataformat/any23/testfile1.html   |  38 ++++
 .../camel/dataformat/any23/testfile2-evilHtml.html |  77 ++++++++
 components/pom.xml                                 |   1 +
 .../camel/model/dataformat/Any23DataFormat.java    |  39 ++++
 .../components-starter/camel-any23-starter/pom.xml |  53 ++++++
 .../any23DataFormatAutoConfiguration.java          | 128 +++++++++++++
 .../springboot/any23DataFormatConfiguration.java   |  54 ++++++
 .../src/main/resources/META-INF/LICENSE.txt        | 203 +++++++++++++++++++++
 .../src/main/resources/META-INF/NOTICE.txt         |  11 ++
 .../src/main/resources/META-INF/spring.factories   |  19 ++
 .../src/main/resources/META-INF/spring.provides    |  17 ++
 platforms/spring-boot/components-starter/pom.xml   |   1 +
 20 files changed, 1215 insertions(+)

diff --git a/components/camel-any23/pom.xml b/components/camel-any23/pom.xml
new file mode 100644
index 0000000..e42a960
--- /dev/null
+++ b/components/camel-any23/pom.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>components</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-any23</artifactId>
+    <packaging>jar</packaging>
+    <name>Camel :: any23</name>
+    <description>Camel Any23 support</description>
+
+    <properties>
+    </properties>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-support</artifactId>
+        </dependency>
+
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-api</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-slf4j-impl</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/components/camel-any23/src/main/docs/any23-dataformat.adoc b/components/camel-any23/src/main/docs/any23-dataformat.adoc
new file mode 100644
index 0000000..74bcfc3
--- /dev/null
+++ b/components/camel-any23/src/main/docs/any23-dataformat.adoc
@@ -0,0 +1,111 @@
+== Any23 DataFormat
+== TidyMarkup DataFormat
+
+*Available as of Camel version 1.0*
+
+TidyMarkup is a Data Format that uses the
+http://www.ccil.org/~cowan/XML/tagsoup/[TagSoup] to tidy up HTML. It can
+be used to parse ugly HTML and return it as pretty wellformed HTML.
+
+*Camel eats our own -dog food- soap*
+
+We had some issues in our pdf Manual where we had some
+strange symbols. So http://janstey.blogspot.com/[Jonathan] used this
+data format to tidy up the wiki html pages that are used as base for
+rendering the pdf manuals. And then the mysterious symbols vanished.
+
+TidyMarkup only supports the *unmarshal* operation
+as we really don't want to turn well formed HTML into ugly HTML.
+
+### TidyMarkup Options
+
+
+
+// dataformat options: START
+The Any23 dataformat supports 1 options, which are listed below.
+
+
+
+[width="100%",cols="2s,1m,1m,6",options="header"]
+|===
+| Name | Default | Java Type | Description
+| contentTypeHeader | false | Boolean | Whether the data format should set the Content-Type header with the type 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.
+|===
+// dataformat options: END
+// spring-boot-auto-configure options: START
+=== Spring Boot Auto-Configuration
+
+When using Spring Boot make sure to use the following Maven dependency to have support for auto configuration:
+
+[source,xml]
+----
+<dependency>
+  <groupId>org.apache.camel</groupId>
+  <artifactId>camel-tagsoup-starter</artifactId>
+  <version>x.x.x</version>
+  <!-- use the same version as your Camel core version -->
+</dependency>
+----
+
+
+The component supports 4 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *camel.dataformat.tidymarkup.content-type-header* | Whether the data format should set the Content-Type header with the type 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.tidymarkup.data-object-type* | What data type to unmarshal as, can either be org.w3c.dom.Node or java.lang.String. Is by default org.w3c.dom.Node | org.w3c.dom.Node | String
+| *camel.dataformat.tidymarkup.enabled* | Enable tidymarkup dataformat | true | Boolean
+| *camel.dataformat.tidymarkup.omit-xml-declaration* | When returning a String, do we omit the XML declaration in the top. | false | Boolean
+|===
+// spring-boot-auto-configure options: END
+
+
+
+
+### Java DSL Example
+
+An example where the consumer provides some HTML
+
+[source,java]
+---------------------------------------------------------------------------
+from("file://site/inbox").unmarshal().tidyMarkup().to("file://site/blogs");
+---------------------------------------------------------------------------
+
+### Spring XML Example
+
+The following example shows how to use TidyMarkup
+to unmarshal using Spring
+
+[source,java]
+-----------------------------------------------------------------------
+<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+  <route>
+    <from uri="file://site/inbox"/>
+    <unmarshal>
+      <tidyMarkup/>
+    </unmarshal>
+    <to uri="file://site/blogs"/>
+  </route>
+</camelContext>
+-----------------------------------------------------------------------
+
+### Dependencies
+
+To use TidyMarkup in your camel routes you need to add the a dependency
+on *camel-tagsoup* which implements this data format.
+
+If you use maven you could just add the following to your pom.xml,
+substituting the version number for the latest & greatest release (see
+the download page for the latest versions).
+
+[source,java]
+----------------------------------------
+<dependency>
+  <groupId>org.apache.camel</groupId>
+  <artifactId>camel-tagsoup</artifactId>
+  <version>x.x.x</version>
+</dependency>
+----------------------------------------
diff --git a/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/any23DataFormat.java b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/any23DataFormat.java
new file mode 100644
index 0000000..d4b1622
--- /dev/null
+++ b/components/camel-any23/src/main/java/org/apache/camel/dataformat/any23/any23DataFormat.java
@@ -0,0 +1,85 @@
+/*
+ * 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.dataformat.any23;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.camel.CamelException;
+import org.apache.camel.Exchange;
+import org.apache.camel.spi.DataFormat;
+import org.apache.camel.spi.DataFormatName;
+import org.apache.camel.spi.annotations.Dataformat;
+import org.apache.camel.support.service.ServiceSupport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Dataformat for any23 .. This dataformat is intended to convert HTML from a
+ * site (or file) into rdf.
+ */
+@Dataformat("any23")
+public class any23DataFormat extends ServiceSupport implements DataFormat, DataFormatName {
+
+  /*
+     * Our Logger
+   */
+  private static final Logger LOG = LoggerFactory.getLogger(any23DataFormat.class);
+
+
+
+  /**
+   * String or Node to return
+   */
+  private Class<?> dataObjectType;
+
+  /**
+   * What is the default output format ?
+   */
+  private String method;
+
+  @Override
+  public String getDataFormatName() {
+    return "any23";
+  }
+
+  /**
+   * Marshal data. Generate RDF.
+   */
+  public void marshal(Exchange exchange, Object object, OutputStream outputStream) throws Exception {
+    throw new CamelException("Marshalling from Well Formed HTML to ugly HTML is not supported."
+            + " Only unmarshal is supported");
+  }
+
+  /**
+   * Unmarshal the data
+   */
+  public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
+
+     throw new CamelException("Sin implementaci[on aun");
+  }
+
+  @Override
+  protected void doStart() throws Exception {
+    // noop
+  }
+
+  @Override
+  protected void doStop() throws Exception {
+    // noop
+  }
+}
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsDomNodeTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsDomNodeTest.java
new file mode 100644
index 0000000..06aa8ae
--- /dev/null
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsDomNodeTest.java
@@ -0,0 +1,82 @@
+/*
+ * 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.dataformat.tagsoup;
+
+import java.io.File;
+import java.util.List;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Message;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+public class TidyMarkupDataFormatAsDomNodeTest extends CamelTestSupport {
+    
+    @Test
+    public void testUnMarshalToStringOfXml() throws Exception {
+        MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
+        resultEndpoint.expectedMessageCount(2);
+
+        /*
+         * each of these files has a <p>TidyMarkupNode section. (no closing tag)
+         * 
+         * See the route below, we send the tidyMarkup to xpath and boolean that out.
+         */
+        String badHtml = TidyMarkupTestSupport.loadFileAsString(new File(
+                "src/test/resources/org/apache/camel/dataformat/tagsoup/testfile1.html"));
+        String evilHtml = TidyMarkupTestSupport.loadFileAsString(new File(
+                "src/test/resources/org/apache/camel/dataformat/tagsoup/testfile2-evilHtml.html"));
+
+        template.sendBody("direct:start", badHtml);
+        template.sendBody("direct:start", evilHtml);
+
+        resultEndpoint.assertIsSatisfied();
+        List<Exchange> list = resultEndpoint.getReceivedExchanges();
+        for (Exchange exchange : list) {
+            Message in = exchange.getIn();
+            String response = in.getBody(String.class);
+
+            log.debug("Received " + response);
+            assertNotNull("Should be able to convert received body to a string", response);
+
+            try {
+                /*
+                 * our route xpaths the existence of our signature "<p>TidyMarkupNode"
+                 * but of course, by the xpath time, it is well formed
+                 */
+                assertTrue(response.equals("true"));
+            } catch (Exception e) {
+
+                fail("Failed to convert the resulting String to XML: " + e.getLocalizedMessage());
+            }
+
+        }
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            public void configure() {
+                from("direct:start").unmarshal().tidyMarkup().setBody().xpath(
+                        "boolean(//p[contains(text(),'TidyMarkupNode')])", String.class).to("mock:result");
+            }
+        };
+    }
+
+}
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsStringTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsStringTest.java
new file mode 100644
index 0000000..204fd33
--- /dev/null
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatAsStringTest.java
@@ -0,0 +1,72 @@
+/*
+ * 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.dataformat.tagsoup;
+
+import java.io.File;
+import java.util.List;
+
+import org.w3c.dom.Node;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Message;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+
+public class TidyMarkupDataFormatAsStringTest extends CamelTestSupport {
+   
+    @Test
+    public void testUnMarshalToStringOfXml() throws Exception {
+        MockEndpoint resultEndpoint = resolveMandatoryEndpoint("mock:result", MockEndpoint.class);
+        resultEndpoint.expectedMessageCount(2);
+
+        String badHtml = TidyMarkupTestSupport.loadFileAsString(new File(
+                "src/test/resources/org/apache/camel/dataformat/tagsoup/testfile1.html"));
+        String evilHtml = TidyMarkupTestSupport.loadFileAsString(new File(
+                "src/test/resources/org/apache/camel/dataformat/tagsoup/testfile2-evilHtml.html"));
+
+        template.sendBody("direct:start", badHtml);
+        template.sendBody("direct:start", evilHtml);
+
+        resultEndpoint.assertIsSatisfied();
+        List<Exchange> list = resultEndpoint.getReceivedExchanges();
+        for (Exchange exchange : list) {
+            try {
+                Message in = exchange.getIn();
+                Node tidyMarkup = in.getBody(Node.class);
+
+                log.debug("Received " + tidyMarkup);
+                assertNotNull("Should be able to convert received body to a string", tidyMarkup);
+                
+            } catch (Exception e) {
+                fail("Failed to convert the resulting String to XML: " + e.getLocalizedMessage());
+            }
+        }
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            public void configure() {
+                from("direct:start").unmarshal().tidyMarkup().to("mock:result");
+            }
+        };
+    }
+
+}
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatWithUnmarshalTypeTest.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatWithUnmarshalTypeTest.java
new file mode 100644
index 0000000..77ed3ae
--- /dev/null
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormatWithUnmarshalTypeTest.java
@@ -0,0 +1,37 @@
+/*
+ * 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.dataformat.tagsoup;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.model.dataformat.TidyMarkupDataFormat;
+
+/*
+ * This just tests whether this dataformat is available to UnmarshalType
+ */
+public class TidyMarkupDataFormatWithUnmarshalTypeTest extends TidyMarkupDataFormatAsStringTest {
+
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            public void configure() {                
+                TidyMarkupDataFormat dataFormat = new TidyMarkupDataFormat(String.class);
+                from("direct:start").unmarshal(dataFormat).to("mock:result");
+            }
+        };
+    }
+
+}
diff --git a/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupTestSupport.java b/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupTestSupport.java
new file mode 100644
index 0000000..2b53585
--- /dev/null
+++ b/components/camel-any23/src/test/java/org/apache/camel/dataformat/tagsoup/TidyMarkupTestSupport.java
@@ -0,0 +1,86 @@
+/*
+ * 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.dataformat.tagsoup;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.StringReader;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+import org.apache.camel.util.IOHelper;
+
+public final class TidyMarkupTestSupport {
+    
+    private TidyMarkupTestSupport() {
+        // Utility class
+    }
+    
+    public static String loadFileAsString(File file) throws Exception {
+        StringBuilder fileContent = new StringBuilder();
+        BufferedReader input = IOHelper.buffered(new FileReader(file));
+        try {
+            String line = null;
+            while ((line = input.readLine()) != null) {
+                fileContent.append(line);
+                fileContent.append(System.lineSeparator());
+            }
+        } finally {
+            input.close();
+        }
+        return fileContent.toString();
+    }
+
+    /**
+     * Convert XML String to a Document.
+     * 
+     * @param xmlString
+     * @return document Document
+     * @throws IOException
+     * @throws SAXException
+     * @throws ParserConfigurationException
+     */
+    public static Document stringToXml(String xmlString) throws SAXException, IOException, ParserConfigurationException {
+        return createDocumentBuilder().parse(new InputSource(new StringReader(xmlString)));
+    }
+
+    /**
+     * Static to generate a documentBuilder
+     * 
+     * @return
+     * @throws ParserConfigurationException
+     */
+    public static DocumentBuilder createDocumentBuilder() throws ParserConfigurationException {
+
+        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
+        docBuilderFactory.setIgnoringComments(true);
+        docBuilderFactory.setIgnoringElementContentWhitespace(true);
+        docBuilderFactory.setCoalescing(true);
+        docBuilderFactory.setExpandEntityReferences(true);
+        docBuilderFactory.setNamespaceAware(true);
+        return docBuilderFactory.newDocumentBuilder();
+    }
+}
diff --git a/components/camel-any23/src/test/resources/log4j2.properties b/components/camel-any23/src/test/resources/log4j2.properties
new file mode 100644
index 0000000..57bb91f
--- /dev/null
+++ b/components/camel-any23/src/test/resources/log4j2.properties
@@ -0,0 +1,28 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+
+appender.file.type = File
+appender.file.name = file
+appender.file.fileName = target/camel-atom-test.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+appender.out.type = Console
+appender.out.name = out
+appender.out.layout.type = PatternLayout
+appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n
+rootLogger.level = INFO
+rootLogger.appenderRef.file.ref = file
diff --git a/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile1.html b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile1.html
new file mode 100644
index 0000000..b6f4707
--- /dev/null
+++ b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile1.html
@@ -0,0 +1,38 @@
+<!--
+
+    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.
+
+-->
+<html>
+     <head>
+      <title>FooBar</title>
+      <meta name=metatag value=foo>
+     </head>
+     
+     <body onload="foo()"  >
+         <p>
+            Some text
+            
+         <p>
+             Some more Text
+     <p>TidyMarkupNode
+          <img src=filename.jpg>
+          
+          <font color="red">Some red text
+          
+     </body>
+    
+</HTML>
\ No newline at end of file
diff --git a/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile2-evilHtml.html b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile2-evilHtml.html
new file mode 100644
index 0000000..35ec6da
--- /dev/null
+++ b/components/camel-any23/src/test/resources/org/apache/camel/dataformat/any23/testfile2-evilHtml.html
@@ -0,0 +1,77 @@
+<!--
+
+    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.
+
+-->
+<html>
+<META-START>
+John Cowan
+<TABLE>
+<ROW>
+<CELL>SOUPE</CELL>
+<CELL>BE EVIL!</CELL></ROW>
+DE BALISES</TABLE>
+<CORR NEW="U" LOC="PI"/>
+<G ID="P1">
+Ecritez une balise ouvrante (sans attributs)
+</G>
+ou fermante HTML ici, s.v.p.</META-START>
+<FONT>X Y <p> ABC </FONT> xyz
+QRS<sup>TUV<sub>WXY</sup>Z</sub>
+
+<p>TidyMarkupNode
+<script language="javascript"><p></script>
+<table><tbody><tr><th>ABC
+</table><nr/>
+<meta><meta><meta><meta>
+<pre xml:space="default">test</pre>
+<test xmlns:xml="http://www.example.org/>
+</test><hr/>
+(add a random HTML tag above)
+<r:r:r:test/>
+
+<b><i></B></I>
+<b>
+  <p>bbb</b></p>
+  <p>bbb</b></p>
+  <p>bbb</b></p>
+<blink>&grec;
+<p xmlns:xqp="http://www.w3.org/1998/XML">
+ <span xqp:space="preserve">~~~</span>
+</p></blink>
+<html:p xmlns:html="http://...."></p>
+<@/><!--Apple logo in PUA-->
+<!--comment--comment-->
+<!--comment--comment>
+
+<P>]]>
+<P id="7" id="8">M</p>
+<p xmlns:a="urn" xmlns:b="urn"
+   a:id="7" b:id="9">~~~</p>
+<p id="a" idref="a"/>  BE EVIL!
+<extreme sID="a" mood="happy"/>
+<extreme eID="a" mood="sad"/>
+<math><mi>2</mi><msup>3
+  </msup></math>  <title>
+<verse><seg>When,</seg><seg>in</line>
+<line>the beginning</line><line>God created
+the heaven and the earth.</line></verse>
+
+<How/><To/><Markup/><Legibly/>
+<Name Name="Name">Name</Name>
+<list 4 text </p>
+<marquee>foo!</marquee>
+		
\ No newline at end of file
diff --git a/components/pom.xml b/components/pom.xml
index 4cfd587..afc33ce 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -92,6 +92,7 @@
         <module>camel-ahc</module>
         <module>camel-ahc-ws</module>
         <module>camel-amqp</module>
+        <module>camel-any23</module>
         <module>camel-apns</module>
         <module>camel-as2</module>
         <module>camel-asn1</module>
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
new file mode 100644
index 0000000..7dde517
--- /dev/null
+++ b/core/camel-core/src/main/java/org/apache/camel/model/dataformat/Any23DataFormat.java
@@ -0,0 +1,39 @@
+/*
+ * 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.model.dataformat;
+
+
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.camel.model.DataFormatDefinition;
+import org.apache.camel.spi.Metadata;
+
+/**
+ * Any23 data format is used for parsing data to RDF.
+ */
+@Metadata(firstVersion = "1.0.0", label = "dataformat,transformation", title = "Any23")
+@XmlRootElement(name = "any23")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class Any23DataFormat extends DataFormatDefinition {
+   
+
+}
\ No newline at end of file
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml b/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
new file mode 100644
index 0000000..5c3558f
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/pom.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>components-starter</artifactId>
+    <version>3.0.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>camel-any23-starter</artifactId>
+  <packaging>jar</packaging>
+  <name>Spring-Boot Starter :: Camel :: any23</name>
+  <description>Spring-Boot Starter for Camel Any23 support</description>
+  <dependencies>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter</artifactId>
+      <version>${spring-boot-version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-any23</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <!--START OF GENERATED CODE-->
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-core-starter</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-spring-boot-starter</artifactId>
+    </dependency>
+    <!--END OF GENERATED CODE-->
+  </dependencies>
+</project>
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatAutoConfiguration.java
new file mode 100644
index 0000000..3caaebc
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatAutoConfiguration.java
@@ -0,0 +1,128 @@
+/*
+ * 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.dataformat.any23.springboot;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelContextAware;
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.dataformat.any23.any23DataFormat;
+import org.apache.camel.spi.DataFormat;
+import org.apache.camel.spi.DataFormatCustomizer;
+import org.apache.camel.spi.DataFormatFactory;
+import org.apache.camel.spi.HasId;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.spring.boot.DataFormatConfigurationProperties;
+import org.apache.camel.spring.boot.util.CamelPropertiesHelper;
+import org.apache.camel.spring.boot.util.ConditionalOnCamelContextAndAutoConfigurationBeans;
+import org.apache.camel.spring.boot.util.GroupCondition;
+import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
+import org.apache.camel.support.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Conditional;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
+@Configuration
+@Conditional({ConditionalOnCamelContextAndAutoConfigurationBeans.class,
+        any23DataFormatAutoConfiguration.GroupConditions.class})
+@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
+@EnableConfigurationProperties({DataFormatConfigurationProperties.class,
+        any23DataFormatConfiguration.class})
+public class any23DataFormatAutoConfiguration {
+
+    private static final Logger LOGGER = LoggerFactory
+            .getLogger(any23DataFormatAutoConfiguration.class);
+    @Autowired
+    private ApplicationContext applicationContext;
+    @Autowired
+    private CamelContext camelContext;
+    @Autowired
+    private any23DataFormatConfiguration configuration;
+    @Autowired(required = false)
+    private List<DataFormatCustomizer<any23DataFormat>> customizers;
+
+    static class GroupConditions extends GroupCondition {
+        public GroupConditions() {
+            super("camel.dataformat", "camel.dataformat.any23");
+        }
+    }
+
+    @Bean(name = "any23-dataformat-factory")
+    @ConditionalOnMissingBean(any23DataFormat.class)
+    public DataFormatFactory configureany23DataFormatFactory() throws Exception {
+        return new DataFormatFactory() {
+            @Override
+            public DataFormat newInstance() {
+                any23DataFormat dataformat = new any23DataFormat();
+                if (CamelContextAware.class
+                        .isAssignableFrom(any23DataFormat.class)) {
+                    CamelContextAware contextAware = CamelContextAware.class
+                            .cast(dataformat);
+                    if (contextAware != null) {
+                        contextAware.setCamelContext(camelContext);
+                    }
+                }
+                try {
+                    Map<String, Object> parameters = new HashMap<>();
+                    IntrospectionSupport.getProperties(configuration,
+                            parameters, null, false);
+                    CamelPropertiesHelper.setCamelProperties(camelContext,
+                            dataformat, parameters, false);
+                } catch (Exception e) {
+                    throw new RuntimeCamelException(e);
+                }
+                if (ObjectHelper.isNotEmpty(customizers)) {
+                    for (DataFormatCustomizer<any23DataFormat> customizer : customizers) {
+                        boolean useCustomizer = (customizer instanceof HasId)
+                                ? HierarchicalPropertiesEvaluator.evaluate(
+                                        applicationContext.getEnvironment(),
+                                        "camel.dataformat.customizer",
+                                        "camel.dataformat.any23.customizer",
+                                        ((HasId) customizer).getId())
+                                : HierarchicalPropertiesEvaluator.evaluate(
+                                        applicationContext.getEnvironment(),
+                                        "camel.dataformat.customizer",
+                                        "camel.dataformat.any23.customizer");
+                        if (useCustomizer) {
+                            LOGGER.debug(
+                                    "Configure dataformat {}, with customizer {}",
+                                    dataformat, customizer);
+                            customizer.customize(dataformat);
+                        }
+                    }
+                }
+                return dataformat;
+            }
+        };
+    }
+}
\ No newline at end of file
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatConfiguration.java b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatConfiguration.java
new file mode 100644
index 0000000..06565e8
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/any23DataFormatConfiguration.java
@@ -0,0 +1,54 @@
+/*
+ * 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.dataformat.any23.springboot;
+
+import javax.annotation.Generated;
+import org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Any23 data format is used for parsing data to RDF.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo")
+@ConfigurationProperties(prefix = "camel.dataformat.any23")
+public class any23DataFormatConfiguration
+        extends
+            DataFormatConfigurationPropertiesCommon {
+
+    /**
+     * Whether to enable auto configuration of the any23 data format. This is
+     * enabled by default.
+     */
+    private Boolean enabled;
+    /**
+     * Whether the data format should set the Content-Type header with the type
+     * 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.
+     */
+    private Boolean contentTypeHeader = false;
+
+    public Boolean getContentTypeHeader() {
+        return contentTypeHeader;
+    }
+
+    public void setContentTypeHeader(Boolean contentTypeHeader) {
+        this.contentTypeHeader = contentTypeHeader;
+    }
+}
\ No newline at end of file
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/LICENSE.txt b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/LICENSE.txt
new file mode 100644
index 0000000..6b0b127
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/LICENSE.txt
@@ -0,0 +1,203 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed 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.
+
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/NOTICE.txt b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/NOTICE.txt
new file mode 100644
index 0000000..2e215bf
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/NOTICE.txt
@@ -0,0 +1,11 @@
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for the Apache Camel distribution.                    ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   Please read the different LICENSE files present in the licenses directory of
+   this distribution.
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.factories b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..77190b5
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,19 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.dataformat.any23.springboot.any23DataFormatAutoConfiguration
diff --git a/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.provides b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.provides
new file mode 100644
index 0000000..04d05f9
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-any23-starter/src/main/resources/META-INF/spring.provides
@@ -0,0 +1,17 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+provides: camel-any23
diff --git a/platforms/spring-boot/components-starter/pom.xml b/platforms/spring-boot/components-starter/pom.xml
index 71a2e7c..a1c5f71 100644
--- a/platforms/spring-boot/components-starter/pom.xml
+++ b/platforms/spring-boot/components-starter/pom.xml
@@ -105,6 +105,7 @@
     <module>camel-ahc-starter</module>
     <module>camel-ahc-ws-starter</module>
     <module>camel-amqp-starter</module>
+    <module>camel-any23-starter</module>
     <module>camel-apns-starter</module>
     <module>camel-as2-starter</module>
     <module>camel-asn1-starter</module>


[camel] 20/20: Camel-Any23: Added a SB Integration test for the component

Posted by ac...@apache.org.
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

commit 8c6bd3b1126b92d5a3d447d288284beb15f15174
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Aug 21 09:53:20 2019 +0200

    Camel-Any23: Added a SB Integration test for the component
---
 .../camel/itest/springboot/CamelAny23Test.java     | 49 ++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAny23Test.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAny23Test.java
new file mode 100644
index 0000000..ecc603a
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAny23Test.java
@@ -0,0 +1,49 @@
+/*
+ * 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 CamelAny23Test extends AbstractSpringBootTestSupport {
+
+    @Deployment
+    public static Archive<?> createSpringBootPackage() throws Exception {
+        return ArquillianPackager.springBootPackage(createTestConfig());
+    }
+
+    public static ITestConfig createTestConfig() {
+        return new ITestConfigBuilder()
+                .module(inferModuleName(CamelAny23Test.class))
+                .build();
+    }
+
+    @Test
+    public void componentTests() throws Exception {
+        this.runDataformatTest(config, "any23");
+
+        this.runModuleUnitTestsIfEnabled(config);
+    }
+
+
+}


[camel] 18/20: suspend karaf support

Posted by ac...@apache.org.
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

commit 03391af5b6b9d1af667c4325fa0e92cb7243d01d
Author: betoflow <be...@gmail.com>
AuthorDate: Fri Aug 16 20:40:36 2019 -0500

    suspend karaf support
---
 platforms/karaf/features/src/main/resources/bundles.properties | 1 -
 platforms/karaf/features/src/main/resources/features.xml       | 8 --------
 2 files changed, 9 deletions(-)

diff --git a/platforms/karaf/features/src/main/resources/bundles.properties b/platforms/karaf/features/src/main/resources/bundles.properties
index aaca147..69de20d 100644
--- a/platforms/karaf/features/src/main/resources/bundles.properties
+++ b/platforms/karaf/features/src/main/resources/bundles.properties
@@ -30,7 +30,6 @@ org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${ser
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.abdera/${abdera-bundle-version}/jar
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${ant-bundle-version}/jar
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/${antlr-bundle-version}/jar
-org.apache.servicemix.bundles/org.apache.servicemix.bundles.any23/${any23-bundle-version}/jar
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.asm/${asm-bundle-version}/jar
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-beanutils/${commons-beanutils-version}/jar
 org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/${commons-httpclient-bundle-version}/jar
diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml
index 04ae6c2..9188304 100644
--- a/platforms/karaf/features/src/main/resources/features.xml
+++ b/platforms/karaf/features/src/main/resources/features.xml
@@ -170,14 +170,6 @@
     <bundle dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
     <bundle>mvn:org.apache.camel/camel-amqp/${project.version}</bundle>
   </feature>
-  <feature name='camel-any23' version='${project.version}' start-level='50'>
-    <feature version='${project.version}'>camel-core</feature>
-    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.any23/${any23-bundle-version}</bundle>
-    <bundle dependency='true'>wrap:mvn:commons.io/commons.io/${commons-io-version}</bundle>
-    <bundle dependency='true'>wrap:mvn:org.eclipse.rdf4j/rdf4j-model/${rdf4j-model-version}</bundle>
-    <bundle dependency='true'>wrap:mvn:org.eclipse.rdf4j/rdf4j-rio-api/${rdf4j-rio-version}</bundle>
-    <bundle>mvn:org.apache.camel/camel-any23/${project.version}</bundle>
-  </feature>
   <feature name='camel-apns' version='${project.version}' start-level='50'>
     <feature version='${project.version}'>camel-core</feature>
     <bundle dependency='true'>mvn:org.apache.mina/mina-core/${mina-version}</bundle>