Repository: camel Updated Branches: refs/heads/master d6bcef78a -> 0be929fe8
Component docs. Allow to make build fail fast so we can easier see which components have adoc problems. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0be929fe Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0be929fe Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0be929fe Branch: refs/heads/master Commit: 0be929fe890f8593cb6a59a9bb2ae48ba4de8cd8 Parents: d6bcef7 Author: Claus Ibsen <davscl...@apache.org> Authored: Tue Sep 6 14:44:32 2016 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Sep 6 14:44:32 2016 +0200 ---------------------------------------------------------------------- .../src/main/docs/base64-dataformat.adoc | 18 +- .../src/main/docs/castor-dataformat.adoc | 22 +- .../src/main/docs/crypto-dataformat.adoc | 295 +++++++++++++++++++ .../src/main/docs/pgp-dataformat.adoc | 13 +- .../camel-csv/src/main/docs/csv-dataformat.adoc | 148 +++------- .../src/main/docs/docker-component.adoc | 221 +++++--------- .../src/main/docs/dozer-component.adoc | 46 ++- .../src/main/docs/jaxb-dataformat.adoc | 33 +++ .../src/main/docs/servlet-component.adoc | 62 ++-- components/pom.xml | 4 + .../maven/packaging/PrepareCatalogMojo.java | 2 - .../maven/packaging/ReadmeComponentMojo.java | 32 ++ 12 files changed, 575 insertions(+), 321 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/components/camel-base64/src/main/docs/base64-dataformat.adoc ---------------------------------------------------------------------- diff --git a/components/camel-base64/src/main/docs/base64-dataformat.adoc b/components/camel-base64/src/main/docs/base64-dataformat.adoc index dec53c5..f0d76cd 100644 --- a/components/camel-base64/src/main/docs/base64-dataformat.adoc +++ b/components/camel-base64/src/main/docs/base64-dataformat.adoc @@ -10,11 +10,21 @@ http://en.wikipedia.org/wiki/Base64[base64 encoding and decoding]. Options ^^^^^^^ -// component options: START -// component options: END +// dataformat options: START +The Base64 dataformat supports 3 options which are listed below. -// endpoint options: START -// endpoint options: END + + +{% raw %} +[width="100%",cols="2s,1m,1m,6",options="header"] +|======================================================================= +| Name | Default | Java Type | Description +| lineLength | 76 | Integer | To specific a maximum line length for the encoded data. By default 76 is used. +| lineSeparator | \r\n | String | The line separators to use. By default \r\n is used. +| urlSafe | false | Boolean | Instead of emitting '' and '/' we emit '-' and '_' respectively. urlSafe is only applied to encode operations. Decoding seamlessly handles both modes. Is by default false. +|======================================================================= +{% endraw %} +// dataformat options: END In Spring DSL, you configure the data format using this tag: http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/components/camel-castor/src/main/docs/castor-dataformat.adoc ---------------------------------------------------------------------- diff --git a/components/camel-castor/src/main/docs/castor-dataformat.adoc b/components/camel-castor/src/main/docs/castor-dataformat.adoc index f09723d..f649094 100644 --- a/components/camel-castor/src/main/docs/castor-dataformat.adoc +++ b/components/camel-castor/src/main/docs/castor-dataformat.adoc @@ -112,11 +112,23 @@ on multiple routes. You have to set the <castor> element directly in Options ^^^^^^^ -// component options: START -// component options: END - -// endpoint options: START -// endpoint options: END +// dataformat options: START +The Castor dataformat supports 5 options which are listed below. + + + +{% raw %} +[width="100%",cols="2s,1m,1m,6",options="header"] +|======================================================================= +| Name | Default | Java Type | Description +| mappingFile | | String | Path to a Castor mapping file to load from the classpath. +| validation | true | Boolean | Whether validation is turned on or off. Is by default true. +| encoding | UTF-8 | String | Encoding to use when marshalling an Object to XML. Is by default UTF-8 +| packages | | String[] | Add additional packages to Castor XmlContext +| classes | | String[] | Add additional class names to Castor XmlContext +|======================================================================= +{% endraw %} +// dataformat options: END [[Castor-Dependencies]] Dependencies http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/components/camel-crypto/src/main/docs/crypto-dataformat.adoc ---------------------------------------------------------------------- diff --git a/components/camel-crypto/src/main/docs/crypto-dataformat.adoc b/components/camel-crypto/src/main/docs/crypto-dataformat.adoc new file mode 100644 index 0000000..f252e3a --- /dev/null +++ b/components/camel-crypto/src/main/docs/crypto-dataformat.adoc @@ -0,0 +1,295 @@ +[[Crypto-Crypto]] +Crypto +~~~~~~ + +The Crypto link:data-format.html[Data Format] integrates the Java +Cryptographic Extension into Camel, allowing simple and flexible +encryption and decryption of messages using Camel's familiar marshall +and unmarshal formatting mechanism. It assumes marshalling to mean +encryption to cyphertext and unmarshalling to mean decryption back to +the original plaintext. This data format implements only symmetric +(shared-key) encryption and decyption. + +[[Crypto-PGPDataFormatOptions]] +CryptoDataFormat Options +^^^^^^^^^^^^^^^^^^^^^^^^ + +// dataformat options: START +The Crypto (Java Cryptographic Extension) dataformat supports 9 options which are listed below. + + + +{% raw %} +[width="100%",cols="2s,1m,1m,6",options="header"] +|======================================================================= +| Name | Default | Java Type | Description +| algorithm | DES/CBC/PKCS5Padding | String | The JCE algorithm name indicating the cryptographic algorithm that will be used. Is by default DES/CBC/PKCS5Padding. +| cryptoProvider | | String | The name of the JCE Security Provider that should be used. +| keyRef | | String | Refers to the secret key to lookup from the register to use. +| initVectorRef | | String | Refers to a byte array containing the Initialization Vector that will be used to initialize the Cipher. +| algorithmParameterRef | | String | A JCE AlgorithmParameterSpec used to initialize the Cipher. Will lookup the type using the given name as a java.security.spec.AlgorithmParameterSpec type. +| buffersize | | Integer | The size of the buffer used in the signature process. +| macAlgorithm | HmacSHA1 | String | The JCE algorithm name indicating the Message Authentication algorithm. +| shouldAppendHMAC | false | Boolean | Flag indicating that a Message Authentication Code should be calculated and appended to the encrypted data. +| inline | false | Boolean | Flag indicating that the configured IV should be inlined into the encrypted data stream. Is by default false. +|======================================================================= +{% endraw %} +// dataformat options: END + + +[[Basic Usage]] +Basic Usage +^^^^^^^^^^^ + +At its most basic all that is required to encrypt/decrypt an exchange is a shared secret key. +If one or more instances of the Crypto data format are configured with this key the format can +be used to encrypt the payload in one route (or part of one) and decrypted in another. +For example, using the Java DSL as follows: + +[source,java] +---------------------------------------------------------- +KeyGenerator generator = KeyGenerator.getInstance("DES"); + +CryptoDataFormat cryptoFormat = new CryptoDataFormat("DES", generator.generateKey()); + +from("direct:basic-encryption") + .marshal(cryptoFormat) + .to("mock:encrypted") + .unmarshal(cryptoFormat) + .to("mock:unencrypted"); +---------------------------------------------------------- + + +In Spring the dataformat is configured first and then used in routes + +[source,xml] +---------------------------------------------------------- +<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> + <dataFormats> + <crypto id="basic" algorithm="DES" keyRef="desKey" /> + </dataFormats> + ... + <route> + <from uri="direct:basic-encryption" /> + <marshal ref="basic" /> + <to uri="mock:encrypted" /> + <unmarshal ref="basic" /> + <to uri="mock:unencrypted" /> + </route> +</camelContext> +---------------------------------------------------------- + + +Specifying the Encryption Algorithm +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Changing the algorithm is a matter of supplying the JCE algorithm name. If you change the algorithm you will need to use a compatible key. + +[source,java] +---------------------------------------------------------- +KeyGenerator generator = KeyGenerator.getInstance("DES"); + +CryptoDataFormat cryptoFormat = new CryptoDataFormat("DES", generator.generateKey()); +cryptoFormat.setShouldAppendHMAC(true); +cryptoFormat.setMacAlgorithm("HmacMD5"); + +from("direct:hmac-algorithm") + .marshal(cryptoFormat) + .to("mock:encrypted") + .unmarshal(cryptoFormat) + .to("mock:unencrypted"); +---------------------------------------------------------- + +A list of the available algorithms in Java 7 is available via the Java Cryptography Architecture Standard Algorithm Name Documentation. + + +Specifying an Initialization Vector +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Some crypto algorithms, particularly block algorithms, require configuration with an initial block of data known as an Initialization Vector. +In the JCE this is passed as an AlgorithmParameterSpec when the Cipher is initialized. +To use such a vector with the CryptoDataFormat you can configure it with a byte[] containing the required data e.g. + +[source,java] +---------------------------------------------------------- +KeyGenerator generator = KeyGenerator.getInstance("DES"); +byte[] initializationVector = new byte[] {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07}; + +CryptoDataFormat cryptoFormat = new CryptoDataFormat("DES/CBC/PKCS5Padding", generator.generateKey()); +cryptoFormat.setInitializationVector(initializationVector); + +from("direct:init-vector") + .marshal(cryptoFormat) + .to("mock:encrypted") + .unmarshal(cryptoFormat) + .to("mock:unencrypted"); +---------------------------------------------------------- + +or with spring, suppling a reference to a byte[] + +[source,xml] +---------------------------------------------------------- +<crypto id="initvector" algorithm="DES/CBC/PKCS5Padding" keyRef="desKey" initVectorRef="initializationVector" /> +---------------------------------------------------------- + +The same vector is required in both the encryption and decryption phases. As it is not necessary to keep the IV a secret, +the DataFormat allows for it to be inlined into the encrypted data and subsequently read out in the decryption +phase to initialize the Cipher. To inline the IV set the /oinline flag. + + +[source,java] +---------------------------------------------------------- +KeyGenerator generator = KeyGenerator.getInstance("DES"); +byte[] initializationVector = new byte[] {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07}; +SecretKey key = generator.generateKey(); + +CryptoDataFormat cryptoFormat = new CryptoDataFormat("DES/CBC/PKCS5Padding", key); +cryptoFormat.setInitializationVector(initializationVector); +cryptoFormat.setShouldInlineInitializationVector(true); +CryptoDataFormat decryptFormat = new CryptoDataFormat("DES/CBC/PKCS5Padding", key); +decryptFormat.setShouldInlineInitializationVector(true); + +from("direct:inline") + .marshal(cryptoFormat) + .to("mock:encrypted") + .unmarshal(decryptFormat) + .to("mock:unencrypted"); +---------------------------------------------------------- + +or with spring. + +[source,xml] +---------------------------------------------------------- +<crypto id="inline" algorithm="DES/CBC/PKCS5Padding" keyRef="desKey" initVectorRef="initializationVector" + inline="true" /> +<crypto id="inline-decrypt" algorithm="DES/CBC/PKCS5Padding" keyRef="desKey" inline="true" /> +---------------------------------------------------------- + +For more information of the use of Initialization Vectors, consult + +* http://en.wikipedia.org/wiki/Initialization_vector +* http://www.herongyang.com/Cryptography/ +* http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation + + +Hashed Message Authentication Codes (HMAC) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +To avoid attacks against the encrypted data while it is in transit the CryptoDataFormat can also calculate a Message Authentication +Code for the encrypted exchange contents based on a configurable MAC algorithm. The calculated HMAC is appended to the stream after encryption. +It is separated from the stream in the decryption phase. The MAC is recalculated and verified against the transmitted version to insure nothing +was tampered with in transit.For more information on Message Authentication Codes see http://en.wikipedia.org/wiki/HMAC + +[source,java] +---------------------------------------------------------- +KeyGenerator generator = KeyGenerator.getInstance("DES"); + +CryptoDataFormat cryptoFormat = new CryptoDataFormat("DES", generator.generateKey()); +cryptoFormat.setShouldAppendHMAC(true); + +from("direct:hmac") + .marshal(cryptoFormat) + .to("mock:encrypted") + .unmarshal(cryptoFormat) + .to("mock:unencrypted"); +---------------------------------------------------------- + +or with spring. + +[source,xml] +---------------------------------------------------------- +<crypto id="hmac" algorithm="DES" keyRef="desKey" shouldAppendHMAC="true" /> +---------------------------------------------------------- + +By default the HMAC is calculated using the HmacSHA1 mac algorithm though this can be easily changed by supplying a different algorithm name. +See here for how to check what algorithms are available through the configured security providers + +[source,java] +---------------------------------------------------------- +KeyGenerator generator = KeyGenerator.getInstance("DES"); + +CryptoDataFormat cryptoFormat = new CryptoDataFormat("DES", generator.generateKey()); +cryptoFormat.setShouldAppendHMAC(true); +cryptoFormat.setMacAlgorithm("HmacMD5"); + +from("direct:hmac-algorithm") + .marshal(cryptoFormat) + .to("mock:encrypted") + .unmarshal(cryptoFormat) + .to("mock:unencrypted"); +---------------------------------------------------------- + +or with spring. + +[source,xml] +---------------------------------------------------------- +<crypto id="hmac-algorithm" algorithm="DES" keyRef="desKey" macAlgorithm="HmacMD5" shouldAppendHMAC="true" /> +---------------------------------------------------------- + + +Supplying Keys Dynamically +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When using a Recipient list or similar EIP the recipient of an exchange can vary dynamically. +Using the same key across all recipients may neither be feasible or desirable. It would be useful to be able to specify +keys dynamically on a per exchange basis. The exchange could then be dynamically enriched with the key of its target +recipient before being processed by the data format. To facilitate this the DataFormat allow for keys to be supplied +dynamically via the message headers below + +* CryptoDataFormat.KEY "CamelCryptoKey" + +[source,java] +---------------------------------------------------------- +CryptoDataFormat cryptoFormat = new CryptoDataFormat("DES", null); +/** + * Note: the header containing the key should be cleared after + * marshalling to stop it from leaking by accident and + * potentially being compromised. The processor version below is + * arguably better as the key is left in the header when you use + * the DSL leaks the fact that camel encryption was used. + */ +from("direct:key-in-header-encrypt") + .marshal(cryptoFormat) + .removeHeader(CryptoDataFormat.KEY) + .to("mock:encrypted"); + +from("direct:key-in-header-decrypt").unmarshal(cryptoFormat).process(new Processor() { + public void process(Exchange exchange) throws Exception { + exchange.getIn().getHeaders().remove(CryptoDataFormat.KEY); + exchange.getOut().copyFrom(exchange.getIn()); + } +}).to("mock:unencrypted"); +---------------------------------------------------------- + +or with spring. + +[source,xml] +---------------------------------------------------------- +<crypto id="nokey" algorithm="DES" /> +---------------------------------------------------------- + + +[[Crypto-Dependencies]] +Dependencies +^^^^^^^^^^^^ + +To use the link:crypto.html[Crypto] dataformat in your camel routes you +need to add the following dependency to your pom. + +[source,xml] +---------------------------------------------------------- +<dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-crypto</artifactId> + <version>x.x.x</version> + <!-- use the same version as your Camel core version --> +</dependency> +---------------------------------------------------------- + +[[Crypto-SeeAlso]] +See Also +^^^^^^^^ + +* link:data-format.html[Data Format] +* link:crypto-digital-signatures.html[Crypto (Digital Signatures)] +* http://www.bouncycastle.org/java.html[http://www.bouncycastle.org/java.html] + http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/components/camel-crypto/src/main/docs/pgp-dataformat.adoc ---------------------------------------------------------------------- diff --git a/components/camel-crypto/src/main/docs/pgp-dataformat.adoc b/components/camel-crypto/src/main/docs/pgp-dataformat.adoc index 5918dfe..292395d 100644 --- a/components/camel-crypto/src/main/docs/pgp-dataformat.adoc +++ b/components/camel-crypto/src/main/docs/pgp-dataformat.adoc @@ -1,11 +1,8 @@ -[[Crypto-Crypto]] -Crypto -~~~~~~ +[[PGP-PGP]] +PGP +~~~ -*Available as of Camel 2.3* -*PGP Available as of Camel 2.9* - -The Crypto link:data-format.html[Data Format] integrates the Java +The PGP link:data-format.html[Data Format] integrates the Java Cryptographic Extension into Camel, allowing simple and flexible encryption and decryption of messages using Camel's familiar marshall and unmarshal formatting mechanism. It assumes marshalling to mean @@ -328,7 +325,7 @@ signatureKeyFileName, and signatureKeyRing. Dependencies ^^^^^^^^^^^^ -To use the link:crypto.html[Crypto] dataformat in your camel routes you +To use the PGP dataformat in your camel routes you need to add the following dependency to your pom. [source,xml] http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/components/camel-csv/src/main/docs/csv-dataformat.adoc ---------------------------------------------------------------------- diff --git a/components/camel-csv/src/main/docs/csv-dataformat.adoc b/components/camel-csv/src/main/docs/csv-dataformat.adoc index 5d56296..b10793a 100644 --- a/components/camel-csv/src/main/docs/csv-dataformat.adoc +++ b/components/camel-csv/src/main/docs/csv-dataformat.adoc @@ -7,130 +7,48 @@ http://commons.apache.org/proper/commons-csv/[Apache Commons CSV] to handle CSV payloads (Comma Separated Values) such as those exported/imported by Excel. -As of Camel 2.15.0, it now uses -the http://commons.apache.org/proper/commons-csv/archives/1.1/index.html[Apache -Commons CSV 1.1] which is based on a completely different set of -options. -[[CSV-AvailableoptionsuntilCamel2.15]] -Available options until Camel 2.15 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +[[CSV-Options]] +Options +^^^^^^^ -[width="100%",cols="10%,10%,80%",options="header",] -|======================================================================= -|Option |Type |Description - -|config |CSVConfig |Can be used to set a custom `CSVConfig` object. - -|strategy |CSVStrategy |Can be used to set a custom `CSVStrategy`; the default is -`CSVStrategy.DEFAULT_STRATEGY`. - -|autogenColumns |boolean |Whether or not columns are auto-generated in the resulting CSV. The -default value is `true`; subsequent messages use the previously created -columns with new fields being added at the end of the line. +// dataformat options: START +The CSV dataformat supports 23 options which are listed below. -|delimiter |String |*Camel 2.4:* The column delimiter to use; the default value is "`,`". -|skipFirstLine |boolean |*Camel 2.10:* Whether or not to skip the first line of CSV input when -unmarshalling (e.g. if the content has headers on the first line); the -default value is `false`. -|lazyLoad |boolean |*Camel 2.12.2:* Whether or not to Sequential access CSV input through an -iterator which could avoid OOM exception when processing huge CSV file; -the default value is false - -|useMaps |boolean |*Camel 2.13:* Whether to use List<Map> when unmarshalling instead of -List<List>. +{% raw %} +[width="100%",cols="2s,1m,1m,6",options="header"] |======================================================================= - -[[CSV-AvailableoptionsasofCamel2.15]] -Available options as of Camel 2.15 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -[width="100%",cols="10%,10%,80%",options="header",] +| Name | Default | Java Type | Description +| formatRef | | String | The reference format to use it will be updated with the other format options the default value is CSVFormat.DEFAULT +| formatName | | String | The name of the format to use the default value is CSVFormat.DEFAULT +| commentMarkerDisabled | false | Boolean | Disables the comment marker of the reference format. +| commentMarker | | String | Sets the comment marker of the reference format. +| delimiter | | String | Sets the delimiter to use. The default value is (comma) +| escapeDisabled | false | Boolean | Use for disabling using escape character +| escape | | String | Sets the escape character to use +| headerDisabled | false | Boolean | Use for disabling headers +| header | | List | To configure the CSV headers +| allowMissingColumnNames | false | Boolean | Whether to allow missing column names. +| ignoreEmptyLines | false | Boolean | Whether to ignore empty lines. +| ignoreSurroundingSpaces | false | Boolean | Whether to ignore surrounding spaces +| nullStringDisabled | false | Boolean | Used to disable null strings +| nullString | | String | Sets the null string +| quoteDisabled | false | Boolean | Used to disable quotes +| quote | | String | Sets the quote which by default is +| recordSeparatorDisabled | | String | Used for disabling record separator +| recordSeparator | | String | Sets the record separator (aka new line) which by default is \r\n (CRLF) +| skipHeaderRecord | false | Boolean | Whether to skip the header record in the output +| quoteMode | | String | Sets the quote mode +| lazyLoad | false | Boolean | Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at one. +| useMaps | false | Boolean | Whether the unmarshalling should produce maps for the lines values instead of lists. It requires to have header (either defined or collected). +| recordConverterRef | | String | Refers to a custom CsvRecordConverter to lookup from the registry to use. |======================================================================= -|Option |Type |Description - -|`format` |`CSVFormat` |The reference format to use, it will be updated with the other format -options, the default value is `CSVFormat.DEFAULT` - -|`commentMarkerDisabled` |`boolean` |Disables the comment marker of the reference format. -This option is `false` by default. - -|`commentMarker` |`Character` |Overrides the comment marker of the reference format. -This option is `null` by default. When `null` it keeps the value of the -reference format which is `null` for `CSVFormat.DEFAULT`. - -|`delimiter` |`Character` |Overrides the delimiter of the reference format. -This option is `null` by defaut. When `null` it keeps the value of the -reference format which is `','` for `CSVFormat.DEFAULT`. - -|`escapeDisabled` |`boolean` |Disables the escape character of the reference format. -This option is `false` by default. - -|`escape` |`Character` |Overrides the escape character of the reference format. -This option is `null` by default. When `null` it keeps the value of the -reference format which is `null` for `CSVFormat.DEFAULT`. - -|`headerDisabled` |`boolean` |Disables the header of the reference format. -This option is `false` by default. +{% endraw %} +// dataformat options: END -|`header` |`String[]` |Overrides the header of the reference format. -This option is `null` by default. When `null` it keeps the value of the -reference format which is `null` for `CSVFormat.DEFAULT`. -|`allowMissingColumnNames` |`Boolean` |Overrides the missing column names behavior of the reference format. -This option is `null` by default. When `null` it keeps the value of the -reference format which is `false` for `CSVFormat.DEFAULT`. - -|`ignoreEmptyLines` |`Boolean` |Overrides the empty line behavior of the reference format. -This option is `null` by default. When `null` it keeps the value of the -reference format which is `true` for `CSVFormat.DEFAULT`. - -|`ignoreSurroundingSpaces` |`Boolean` |Overrides the surrounding spaces behavior of the reference format. -This option is `null` by default. When `null` it keeps the value of the -reference format which is `false` for `CSVFormat.DEFAULT`. - -|`nullStringDisabled` |`boolean` |Disables the null string representation of the reference format. -This option is `false` by default. - -|`nullString` |`String` |Overrides the null string representation of the reference format. -This option is `null` by default. When `null` it keeps the value of the -reference format which is `null` for `CSVFormat.DEFAULT`. - -|`quoteDisabled` |`boolean` |Disables the quote of the reference format. -This option is `false` by default. - -|`quote` |`Character` |Overrides the quote symbol of the reference format. -This option is `null` by default. When `null` it keeps the value of the -reference format which is `'"'` (double quote) for `CSVFormat.DEFAULT`. - -|`quoteMode` |`QuoteMode` |Overrides the quote mode of the reference format. -This option is `null` by default. When `null` it keeps the value of the -reference format which is `null` for `CSVFormat.DEFAULT`. - -|`recordSeparatorDisabled` |`boolean` |Disables the record separator of the reference format. -This option is `false` by default. - -|`recordSeparator` |`String` |Overrides the record separator of the reference format. -This option is `null` by default. When `null` it keeps the value of the -reference format which is `\r\n` (CRLF) for `CSVFormat.DEFAULT`. - -|`skipHeaderRecord` |`Boolean` |Overrides the header record behavior of the reference format. -This option is `null` by default. When `null` it keeps the value of the -reference format which is `false` for `CSVFormat.DEFAULT`. - -|`lazyLoad` |`boolean` |Whether the unmarshalling should produce an iterator that reads the -lines on the fly or if all the lines must be read at one. -This option is `false` by default. - -|`useMaps` |`boolean` |Whether the unmarshalling should produce maps for the lines values -instead of lists. It requires to have header (either defined or -collected). This options is `false` by default. - -|`recordConverter` |`CsvRecordConverter` |Sets the record converter to use. If defines the `useMaps` options is -disabled. This option is `null` by default. -|======================================================================= [[CSV-MarshallingaMaptoCSV]] Marshalling a Map to CSV http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/components/camel-docker/src/main/docs/docker-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-docker/src/main/docs/docker-component.adoc b/components/camel-docker/src/main/docs/docker-component.adoc index 04e175e..ee9f289 100644 --- a/components/camel-docker/src/main/docs/docker-component.adoc +++ b/components/camel-docker/src/main/docs/docker-component.adoc @@ -11,18 +11,6 @@ https://github.com/docker-java/docker-java[docker-java] via the https://docs.docker.com/reference/api/docker_remote_api[Docker Remote API]. -Maven users will need to add the following dependency to their `pom.xml` -for this component: - -[source,xml] ------------------------------------------------------------- -<dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-docker</artifactId> - <version>x.x.x</version> - <!-- use the same version as your Camel core version --> -</dependency> ------------------------------------------------------------- [[Docker-URIformat]] URI format @@ -35,153 +23,85 @@ docker://[operation]?[options] Where *operation* is the specific action to perform on Docker. -[[Docker-HeaderStrategy]] -Header Strategy -^^^^^^^^^^^^^^^ - -All URI option can be passed as Header properties. Values found in a -message header take precedence over URI parameters. A header property -takes the form of a URI option prefixed with *CamelDocker* as shown -below - -[width="100%",cols="50%,50%",options="header",] -|======================================================================= -|URI Option |Header Property - -|containerId |CamelDockerContainerId -|======================================================================= - -[[Docker-GeneralOptions]] +[[Docker-Options]] General Options ^^^^^^^^^^^^^^^ -The following parameters can be used with any invocation of the -component +// component options: START +The Docker component supports 16 options which are listed below. -[width="100%",cols="10%,10%,70%,10%",options="header",] -|======================================================================= -|Option |Header |Description |Default Value -|host |CamelDockerHost |*Mandatory:* Docker host |localhost -|port |CamelDockerPort |*Mandatory:* Docker port |2375 - -|username |CamelDockerUserName |User name to authenticate with | - -|password |CamelDockerPassword |Password to authenticate with | - -|email |CamelDockerEmail |Email address associated with the user | - -|secure |CamelDockerSecure |Use HTTPS communication |false - -|requestTimeout |CamelDockerRequestTimeout |Request timeout for response (in seconds) |30 - -|certPath |CamelDockerCertPath |Location containing the SSL certificate chain | +{% raw %} +[width="100%",cols="2,1m,7",options="header"] |======================================================================= - - -[[Docker-ConsumerOperations]] -Consumer Operations -^^^^^^^^^^^^^^^^^^^ - -The consumer supports the following operations. - -[width="100%",cols="10%,10%,70%,10%",options="header",] +| Name | Java Type | Description +| configuration | DockerConfiguration | To use the shared docker configuration. Properties of the shared configuration can also be set individually. +| host | String | Docker host +| port | Integer | Docker port +| username | String | User name to authenticate with +| password | String | Password to authenticate with +| email | String | Email address associated with the user +| serverAddress | String | Server address for docker registry. +| requestTimeout | Integer | Request timeout for response (in seconds) +| secure | boolean | Use HTTPS communication +| certPath | String | Location containing the SSL certificate chain +| maxTotalConnections | Integer | Maximum total connections +| maxPerRouteConnections | Integer | Maximum route connections +| loggingFilter | boolean | Whether to use logging filter +| followRedirectFilter | boolean | Whether to follow redirect filter +| parameters | Map | Additional configuration parameters as key/value pairs +| operation | DockerOperation | Which operation to use |======================================================================= -|Operation |Options |Description |Produces +{% endraw %} +// component options: END -|events |initialRange |Monitor Docker events (Streaming) |Event -|======================================================================= -[[Docker-ProducerOperations]] -Producer Operations -^^^^^^^^^^^^^^^^^^^ +// endpoint options: START +The Docker component supports 18 endpoint options which are listed below: -The following producer operations are available. - -[width="100%",cols="10%,10%,70%,10%",options="header",] +{% raw %} +[width="100%",cols="2,1,1m,1m,5",options="header"] |======================================================================= -|Misc Operation |Options |Description |Returns - -|auth | |Check auth configuration | - -|info | |System wide information | Info - -|ping | |Ping the Docker server | - -|version | |Show the docker version information |Version - -|======================================================================= - -[width="100%",cols="10%,10%,60%,10%,10%",options="header",] +| Name | Group | Default | Java Type | Description +| operation | common | | DockerOperation | *Required* Which operation to use +| certPath | common | | String | Location containing the SSL certificate chain +| email | common | | String | Email address associated with the user +| followRedirectFilter | common | false | boolean | Whether to follow redirect filter +| host | common | localhost | String | *Required* Docker host +| loggingFilter | common | false | boolean | Whether to use logging filter +| maxPerRouteConnections | common | 100 | Integer | Maximum route connections +| maxTotalConnections | common | 100 | Integer | Maximum total connections +| password | common | | String | Password to authenticate with +| port | common | 2375 | Integer | *Required* Docker port +| requestTimeout | common | | Integer | Request timeout for response (in seconds) +| secure | common | false | boolean | Use HTTPS communication +| serverAddress | common | https://index.docker.io/v1/ | String | Server address for docker registry. +| username | common | | String | User name to authenticate with +| bridgeErrorHandler | consumer | false | boolean | 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/ERROR level and ignored. +| exceptionHandler | consumer (advanced) | | ExceptionHandler | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored. +| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange +| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). |======================================================================= -|Image Operation |Options |Description |Body Content |Returns - -|image/list |filter, showAll |List images | | List<Image> +{% endraw %} +// endpoint options: END -|image/create |*repository* |Create an image |InputStream |CreateImageResponse - -|image/build |noCache, quiet, remove, tag |Build an image from Dockerfile via stdin |InputStream or File |InputStream - -|image/pull |*repository*, registry, tag |Pull an image from the registry | | InputStream - -|image/push |*name* |Push an image on the registry | |InputStream - -|image/search |*term* |Search for images | | List<SearchItem> - -|image/remove |*imageId* |Remove an image | | +[[Docker-HeaderStrategy]] +Header Strategy +^^^^^^^^^^^^^^^ -|image/tag |*imageId, repository, tag, force* |Tag an image into a repository | | +All URI option can be passed as Header properties. Values found in a +message header take precedence over URI parameters. A header property +takes the form of a URI option prefixed with *CamelDocker* as shown +below -|image/inspect |*imageId* |Inspect an image | | InspectImageResponse +[width="100%",cols="50%,50%",options="header",] |======================================================================= +|URI Option |Header Property - -[width="100%",cols="10%,30%,40%,10%,10%",options="header",] +|containerId |CamelDockerContainerId |======================================================================= -|Container Operation |Options |Description |Body Content |Returns - -|container/list |showSize, showAll, before, since, limit, List containers |initialRange | | List<Container> - -|container/create |*imageId*, name, exposedPorts, workingDir, disableNetwork, hostname, -user, tty, stdInOpen, stdInOnce, memoryLimit, memorySwap, cpuShares, -attachStdIn, attachStdOut, attachStdErr, env, cmd, dns, image, -volumes, volumesFrom |Create a container |CreateContainerResponse - -|container/start |*containerId*, binds, links, lxcConf, portBindings, privileged, -publishAllPorts, dns, dnsSearch, volumesFrom, networkMode, devices, restartPolicy, -capAdd, capDrop |Start a container | | - -|container/inspect |*containerId* |Inspect a container | | InspectContainerResponse -|container/wait |*containerId* |Wait a container |Integer | - -|container/log |*containerId*, stdOut, stdErr, timestamps, followStream, tailAll, tail |Get container logs | |InputStream - -|container/attach |*containerId*, stdOut, stdErr, timestamps, logs, followStream |Attach to a container | |InputStream - -|container/stop |*containerId*, timeout |Stop a container | | - -|container/restart |*containerId*, timeout |Restart a container | | - -|container/diff |*containerId* |Inspect changes on a container | | ChangeLog - -|container/kill |*containerId*, signal |Kill a container | | - -|container/top |*containerId*, psArgs |List processes running in a container | | TopContainerResponse - -|container/pause |*containerId* |Pause a container | | - -|container/unpause |*containerId* |Unpause a container | | - -|container/commit |*containerId*, repository, message, tag, attachStdIn, attachStdOut, -attachStdErr, cmd, disableNetwork, pause, env, exposedPorts, hostname, memory, -memorySwap, openStdIn, portSpecs, stdInOnce, tty, user, volumes, hostname |Create a new image from a container's changes |String | - -|container/copyfile |*containerId*, *resource*, hostPath |Copy files or folders from a container |InputStream | - -|container/remove |*containerId*, force, removeVolumes |Remove a container | | -|======================================================================= [[Docker-Examples]] Examples @@ -194,8 +114,6 @@ The following example consumes events from Docker: from("docker://events?host=192.168.59.103&port=2375").to("log:event"); ---------------------------------------------------------------------- - - The following example queries Docker for system wide information [source,java] @@ -203,8 +121,23 @@ The following example queries Docker for system wide information from("docker://info?host=192.168.59.103&port=2375").to("log:info"); ------------------------------------------------------------------- - - +[[Docker-Dependencies]] +Dependencies +^^^^^^^^^^^^ + +To use Docker in your Camel routes you need to add a dependency on +*camel-docker*, which implements the component. - +If you use Maven you can just add the following to your pom.xml, +substituting the version number for the latest and greatest release (see +link:download.html[the download page for the latest versions]). + +[source,java] +------------------------------------- +<dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-docker</artifactId> + <version>x.x.x</version> +</dependency> +------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/components/camel-dozer/src/main/docs/dozer-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-dozer/src/main/docs/dozer-component.adoc b/components/camel-dozer/src/main/docs/dozer-component.adoc index d75be57..c47b1fb 100644 --- a/components/camel-dozer/src/main/docs/dozer-component.adoc +++ b/components/camel-dozer/src/main/docs/dozer-component.adoc @@ -59,35 +59,29 @@ from("direct:orderInput"). Options ^^^^^^^ -[width="100%",cols="10%,10%,80%",options="header",] -|======================================================================= -|Name |Default |Description - -|`mappingFile` |dozerBeanMapping.xml |The location of a Dozer configuration file. The file is loaded from the -classpath by default, but you can use `file:`, -`classpath:, or ``http: `to load the configuration from a specific -location. - -|`unmarshalId` |none |The id of a dataFormat defined within the Camel Context to use for -unmarshalling the mapping input from a non-Java type. +// component options: START +The Dozer component has no options. +// component options: END -|`marshalId` |none |The id of a dataFormat defined within the Camel Context to use for -marshalling the mapping output to a non-Java type. +// endpoint options: START +The Dozer component supports 9 endpoint options which are listed below: -|`sourceModel` |none |Fully-qualified class name for the source type used in the mapping. If -specified, the input to the mapping is converted to the specified type -before being mapped with Dozer. - -|`targetModel` |none |Fully-qualified class name for the target type used in the mapping. This -option is required. - -|`mappingConfiguration` |none |The name of a DozerBeanMapperConfiguration bean in the Camel registry -which should be used for configuring the Dozer mapping. This is an -alternative to the mappingFile option that can be used for fine-grained -control over how Dozer is configured. Remember to use a "#" prefix in -the value to indicate that the bean is in the Camel registry (e.g. -"#myDozerConfig"). +{% raw %} +[width="100%",cols="2,1,1m,1m,5",options="header"] +|======================================================================= +| Name | Group | Default | Java Type | Description +| name | producer | | String | *Required* A human readable name of the mapping. +| mappingConfiguration | producer | | DozerBeanMapperConfiguration | The name of a DozerBeanMapperConfiguration bean in the Camel registry which should be used for configuring the Dozer mapping. This is an alternative to the mappingFile option that can be used for fine-grained control over how Dozer is configured. Remember to use a prefix in the value to indicate that the bean is in the Camel registry (e.g. myDozerConfig). +| mappingFile | producer | dozerBeanMapping.xml | String | The location of a Dozer configuration file. The file is loaded from the classpath by default but you can use file: classpath: or http: to load the configuration from a specific location. +| marshalId | producer | | String | The id of a dataFormat defined within the Camel Context to use for marshalling the mapping output to a non-Java type. +| sourceModel | producer | | String | Fully-qualified class name for the source type used in the mapping. If specified the input to the mapping is converted to the specified type before being mapped with Dozer. +| targetModel | producer | | String | *Required* Fully-qualified class name for the target type used in the mapping. +| unmarshalId | producer | | String | The id of a dataFormat defined within the Camel Context to use for unmarshalling the mapping input from a non-Java type. +| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange +| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). |======================================================================= +{% endraw %} +// endpoint options: END [[Dozer-UsingDataFormatswithDozer]] Using Data Formats with Dozer http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/components/camel-jaxb/src/main/docs/jaxb-dataformat.adoc ---------------------------------------------------------------------- diff --git a/components/camel-jaxb/src/main/docs/jaxb-dataformat.adoc b/components/camel-jaxb/src/main/docs/jaxb-dataformat.adoc index 0e7b449..1fe8e36 100644 --- a/components/camel-jaxb/src/main/docs/jaxb-dataformat.adoc +++ b/components/camel-jaxb/src/main/docs/jaxb-dataformat.adoc @@ -7,6 +7,39 @@ marshalling standard which is included in Java 6 to unmarshal an XML payload into Java objects or to marshal Java objects into an XML payload. +[[JAXB-Options]] +Options +^^^^^^^ + +// dataformat options: START +The JAXB dataformat supports 16 options which are listed below. + + + +{% raw %} +[width="100%",cols="2s,1m,1m,6",options="header"] +|======================================================================= +| Name | Default | Java Type | Description +| contextPath | | String | Package name where your JAXB classes are located. +| schema | | String | To validate against an existing schema. Your can use the prefix classpath: file: or http: to specify how the resource should by resolved. You can separate multiple schema files by using the '' character. +| prettyPrint | false | Boolean | To enable pretty printing output nicely formatted. Is by default false. +| objectFactory | false | Boolean | Whether to allow using ObjectFactory classes to create the POJO classes during marshalling. This only applies to POJO classes that has not been annotated with JAXB and providing jaxb.index descriptor files. +| ignoreJAXBElement | false | Boolean | Whether to ignore JAXBElement elements - only needed to be set to false in very special use-cases. +| mustBeJAXBElement | false | Boolean | Whether marhsalling must be java objects with JAXB annotations. And if not then it fails. This option can be set to false to relax that such as when the data is already in XML format. +| filterNonXmlChars | false | Boolean | To ignore non xml characheters and replace them with an empty space. +| encoding | | String | To overrule and use a specific encoding +| fragment | false | Boolean | To turn on marshalling XML fragment trees. By default JAXB looks for XmlRootElement annotation on given class to operate on whole XML tree. This is useful but not always - sometimes generated code does not have XmlRootElement annotation sometimes you need unmarshall only part of tree. In that case you can use partial unmarshalling. To enable this behaviours you need set property partClass. Camel will pass this class to JAXB's unmarshaler. +| partClass | | String | Name of class used for fragment parsing. See more details at the fragment option. +| partNamespace | | String | XML namespace to use for fragment parsing. See more details at the fragment option. +| namespacePrefixRef | | String | When marshalling using JAXB or SOAP then the JAXB implementation will automatic assign namespace prefixes such as ns2 ns3 ns4 etc. To control this mapping Camel allows you to refer to a map which contains the desired mapping. +| xmlStreamWriterWrapper | | String | To use a custom xml stream writer. +| schemaLocation | | String | To define the location of the schema +| noNamespaceSchemaLocation | | String | To define the location of the namespaceless schema +| jaxbProviderProperties | | String | Refers to a custom java.util.Map to lookup in the registry containing custom JAXB provider properties to be used with the JAXB marshaller. +|======================================================================= +{% endraw %} +// dataformat options: END + [[JAXB-UsingtheJavaDSL]] Using the Java DSL ^^^^^^^^^^^^^^^^^^ http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/components/camel-servlet/src/main/docs/servlet-component.adoc ---------------------------------------------------------------------- diff --git a/components/camel-servlet/src/main/docs/servlet-component.adoc b/components/camel-servlet/src/main/docs/servlet-component.adoc index 42efe67..4a966de 100644 --- a/components/camel-servlet/src/main/docs/servlet-component.adoc +++ b/components/camel-servlet/src/main/docs/servlet-component.adoc @@ -45,29 +45,57 @@ You can append query options to the URI in the following format, Options ^^^^^^^ -[width="100%",cols="10%,10%,80%",options="header",] -|======================================================================= -|Name |Default Value |Description +// component options: START +The Servlet component supports 7 options which are listed below. -|`httpBindingRef` |`null` |Reference to an `org.apache.camel.component.http.HttpBinding` in the -link:registry.html[Registry]. A `HttpBinding` implementation can be used -to customize how to write a response. -|`httpBinding` |`null` |*Camel 2.16:* Reference to an -`org.apache.camel.component.http.HttpBinding` in the -link:registry.html[Registry]. A `HttpBinding` implementation can be used -to customize how to write a response. -|`matchOnUriPrefix` |`false` |Whether or not the `CamelServlet` should try to find a target consumer -by matching the URI prefix, if no exact match is found. +{% raw %} +[width="100%",cols="2,1m,7",options="header"] +|======================================================================= +| Name | Java Type | Description +| servletName | String | Default name of servlet to use. The default name is CamelServlet. +| httpRegistry | HttpRegistry | To use a custom org.apache.camel.component.servlet.HttpRegistry. +| attachmentMultipartBinding | boolean | Whether to automatic bind multipart/form-data as attachments on the Camel Exchange. This is turn off by default as this may require servet specific configuration to enable this when using Servlet's. +| httpBinding | HttpBinding | To use a custom HttpBinding to control the mapping between Camel message and HttpClient. +| httpConfiguration | HttpConfiguration | To use the shared HttpConfiguration as base configuration. +| allowJavaSerializedObject | boolean | Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. +| headerFilterStrategy | HeaderFilterStrategy | To use a custom HeaderFilterStrategy to filter header to and from Camel message. +|======================================================================= +{% endraw %} +// component options: END -|`servletName` |`CamelServlet` |Specifies the servlet name that the servlet endpoint will bind to. This -name should match the name you define in `web.xml` file. +// endpoint options: START +The Servlet component supports 21 endpoint options which are listed below: -|`httpMethodRestrict` |`null` |*Camel 2.11:* *Consumer only*: Used to only allow consuming if the -HttpMethod matches, such as GET/POST/PUT etc. From *Camel 2.15*onwards -multiple methods can be specified separated by comma. +{% raw %} +[width="100%",cols="2,1,1m,1m,5",options="header"] +|======================================================================= +| Name | Group | Default | Java Type | Description +| contextPath | consumer | | String | *Required* The context-path to use +| disableStreamCache | common | false | boolean | Determines whether or not the raw input stream from Servlet is cached or not (Camel will read the stream into a in memory/overflow to file Stream caching) cache. By default Camel will cache the Servlet input stream to support reading it multiple times to ensure it Camel can retrieve all data from the stream. However you can set this option to true when you for example need to access the raw stream such as streaming it directly to a file or other persistent store. DefaultHttpBinding will copy the request input stream into a stream cache and put it into message body if this option is false to support reading the stream multiple times. If you use Servlet to bridge/proxy an endpoint then consider enabling this option to improve performance in case you do not need to read the message payload multiple times. The http/http4 producer will by default cache the response body stream. If setting this option to true then the producers will not ca che the response body stream but use the response stream as-is as the message body. +| async | consumer | false | boolean | Configure the consumer to work in async mode +| bridgeErrorHandler | consumer | false | boolean | 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/ERROR level and ignored. +| chunked | consumer | true | boolean | If this option is false the Servlet will disable the HTTP streaming and set the content-length header on the response +| eagerCheckContentAvailable | consumer | false | boolean | Whether to eager check whether the HTTP requests has content if the content-length header is 0 or not present. This can be turned on in case HTTP clients do not send streamed data. +| headerFilterStrategy | consumer | | HeaderFilterStrategy | To use a custom HeaderFilterStrategy to filter header to and from Camel message. +| httpBinding | consumer | | HttpBinding | To use a custom HttpBinding to control the mapping between Camel message and HttpClient. +| httpMethodRestrict | consumer | | String | Used to only allow consuming if the HttpMethod matches such as GET/POST/PUT etc. Multiple methods can be specified separated by comma. +| matchOnUriPrefix | consumer | false | boolean | Whether or not the consumer should try to find a target consumer by matching the URI prefix if no exact match is found. +| optionsEnabled | consumer | false | boolean | Specifies whether to enable HTTP OPTIONS for this Servlet consumer. By default OPTIONS is turned off. +| responseBufferSize | consumer | | Integer | To use a custom buffer size on the javax.servlet.ServletResponse. +| servletName | consumer | CamelServlet | String | Name of the servlet to use +| traceEnabled | consumer | false | boolean | Specifies whether to enable HTTP TRACE for this Servlet consumer. By default TRACE is turned off. +| transferException | consumer | false | boolean | If enabled and an Exchange failed processing on the consumer side and if the caused Exception was send back serialized in the response as a application/x-java-serialized-object content type. On the producer side the exception will be deserialized and thrown as is instead of the HttpOperationFailedException. The caused exception is required to be serialized. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. +| exceptionHandler | consumer (advanced) | | ExceptionHandler | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored. +| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange +| mapHttpMessageBody | advanced | true | boolean | If this option is true then IN exchange Body of the exchange will be mapped to HTTP body. Setting this to false will avoid the HTTP mapping. +| mapHttpMessageFormUrlEncodedBody | advanced | true | boolean | If this option is true then IN exchange Form Encoded body of the exchange will be mapped to HTTP. Setting this to false will avoid the HTTP Form Encoded body mapping. +| mapHttpMessageHeaders | advanced | true | boolean | If this option is true then IN exchange Headers of the exchange will be mapped to HTTP headers. Setting this to false will avoid the HTTP Headers mapping. +| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). |======================================================================= +{% endraw %} +// endpoint options: END [[SERVLET-MessageHeaders]] Message Headers http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/components/pom.xml ---------------------------------------------------------------------- diff --git a/components/pom.xml b/components/pom.xml index bdb7f9a..2e301b7 100644 --- a/components/pom.xml +++ b/components/pom.xml @@ -281,6 +281,10 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-package-maven-plugin</artifactId> <version>${project.version}</version> + <configuration> + <!-- set to true to make build fail fast if missing documentation in docs files --> + <failFast>false</failFast> + </configuration> <executions> <execution> <id>prepare</id> http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java index 7adefaa..ae1ab13 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java @@ -880,8 +880,6 @@ public class PrepareCatalogMojo extends AbstractMojo { // special for bindy if (dataformat.startsWith("bindy")) { dataformat = "bindy"; - } else if (dataformat.startsWith("crypto")) { - dataformat = "pgp"; } String name = dataformat + "-dataformat"; if (!docs.contains(name)) { http://git-wip-us.apache.org/repos/asf/camel/blob/0be929fe/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java index 227ac11..a7a7599 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java @@ -84,6 +84,13 @@ public class ReadmeComponentMojo extends AbstractMojo { */ private BuildContext buildContext; + /** + * Whether to fail the build fast if any WARNINGS was detected. + * + * @parameter + */ + protected Boolean failFast; + @Override public void execute() throws MojoExecutionException, MojoFailureException { executeComponent(); @@ -138,6 +145,9 @@ public class ReadmeComponentMojo extends AbstractMojo { getLog().debug("No changes to doc file: " + file); } else { getLog().warn("No component doc file: " + file); + if (isFailFast()) { + throw new MojoExecutionException("Failed build due failFast=true"); + } } } } @@ -179,6 +189,9 @@ public class ReadmeComponentMojo extends AbstractMojo { getLog().debug("No changes to doc file: " + file); } else { getLog().warn("No dataformat doc file: " + file); + if (isFailFast()) { + throw new MojoExecutionException("Failed build due failFast=true"); + } } } } @@ -251,6 +264,9 @@ public class ReadmeComponentMojo extends AbstractMojo { getLog().debug("No changes to doc file: " + file); } else { getLog().warn("No language doc file: " + file); + if (isFailFast()) { + throw new MojoExecutionException("Failed build due failFast=true"); + } } } } @@ -284,6 +300,9 @@ public class ReadmeComponentMojo extends AbstractMojo { getLog().warn("Add the following markers"); getLog().warn("\t// component options: START"); getLog().warn("\t// component options: END"); + if (isFailFast()) { + throw new MojoExecutionException("Failed build due failFast=true"); + } return false; } } catch (Exception e) { @@ -318,6 +337,9 @@ public class ReadmeComponentMojo extends AbstractMojo { getLog().warn("Add the following markers"); getLog().warn("\t// endpoint options: START"); getLog().warn("\t// endpoint options: END"); + if (isFailFast()) { + throw new MojoExecutionException("Failed build due failFast=true"); + } return false; } } catch (Exception e) { @@ -352,6 +374,9 @@ public class ReadmeComponentMojo extends AbstractMojo { getLog().warn("Add the following markers"); getLog().warn("\t// dataformat options: START"); getLog().warn("\t// dataformat options: END"); + if (isFailFast()) { + throw new MojoExecutionException("Failed build due failFast=true"); + } return false; } } catch (Exception e) { @@ -386,6 +411,9 @@ public class ReadmeComponentMojo extends AbstractMojo { getLog().warn("Add the following markers"); getLog().warn("\t// language options: START"); getLog().warn("\t// language options: END"); + if (isFailFast()) { + throw new MojoExecutionException("Failed build due failFast=true"); + } return false; } } catch (Exception e) { @@ -718,4 +746,8 @@ public class ReadmeComponentMojo extends AbstractMojo { return languageNames; } + private boolean isFailFast() { + return failFast != null && failFast; + } + }