Repository: camel Updated Branches: refs/heads/master 211c7f1ec -> 64a2931f7
Added camel-cometd docs to gitbook Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/64a2931f Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/64a2931f Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/64a2931f Branch: refs/heads/master Commit: 64a2931f71267925e4d9279fe9cb5711cb17ea10 Parents: 211c7f1 Author: Andrea Cosentino <anco...@gmail.com> Authored: Mon Feb 15 15:33:30 2016 +0100 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Mon Feb 15 15:33:30 2016 +0100 ---------------------------------------------------------------------- .../camel-cometd/src/main/docs/cometd.adoc | 198 +++++++++++++++++++ docs/user-manual/en/SUMMARY.md | 1 + 2 files changed, 199 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/64a2931f/components/camel-cometd/src/main/docs/cometd.adoc ---------------------------------------------------------------------- diff --git a/components/camel-cometd/src/main/docs/cometd.adoc b/components/camel-cometd/src/main/docs/cometd.adoc new file mode 100644 index 0000000..01cf2d6 --- /dev/null +++ b/components/camel-cometd/src/main/docs/cometd.adoc @@ -0,0 +1,198 @@ +[[Cometd-CometdComponent]] +Cometd Component +~~~~~~~~~~~~~~~~ + +The *cometd:* component is a transport for working with the +http://www.mortbay.org/jetty[jetty] implementation of the +http://docs.codehaus.org/display/JETTY/Cometd+%28aka+Bayeux%29[cometd/bayeux +protocol]. + + Using this component in combination with the dojo toolkit library it's +possible to push Camel messages directly into the browser using an AJAX +based mechanism. + +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-cometd</artifactId> + <version>x.x.x</version> + <!-- use the same version as your Camel core version --> +</dependency> +------------------------------------------------------------ + +[[Cometd-URIformat]] +URI format +^^^^^^^^^^ + +[source,java] +---------------------------------------- +cometd://host:port/channelName[?options] +---------------------------------------- + +The *channelName* represents a topic that can be subscribed to by the +Camel endpoints. + +[[Cometd-Examples]] +Examples +^^^^^^^^ + +------------------------------------------ +cometd://localhost:8080/service/mychannel +cometds://localhost:8443/service/mychannel +------------------------------------------ + +where `cometds:` represents an SSL configured endpoint. + +[[Cometd-Options]] +Options +^^^^^^^ +[width="100%",cols="10%,10%,80%",options="header",] +|======================================================================= +|Name |Default Value |Description + +|`resourceBase` | | The root directory for the web resources or classpath. Use the protocol +file: or classpath: depending if you want that the component loads the +resource from file system or classpath. Classpath is required for OSGI +deployment where the resources are packaged in the jar. Notice this +option has been renamed to `baseResource` from *Camel 2.7* onwards. + +|`baseResource` | | *Camel 2.7:* The root directory for the web resources or classpath. Use +the protocol file: or classpath: depending if you want that the +component loads the resource from file system or classpath. Classpath is +required for OSGI deployment where the resources are packaged in the jar + +|`timeout` |`240000` |The server side poll timeout in milliseconds. This is how long the +server will hold a reconnect request before responding. + +|`interval` |`0` |The client side poll timeout in milliseconds. How long a client will +wait between reconnects + +|`maxInterval` |`30000` |The max client side poll timeout in milliseconds. A client will be +removed if a connection is not received in this time. + +|`multiFrameInterval` |`1500` |The client side poll timeout, if multiple connections are detected from +the same browser. + +|`jsonCommented` |`true` |If `true`, the server will accept JSON wrapped in a comment and will +generate JSON wrapped in a comment. This is a defence against Ajax +Hijacking. + +|`logLevel` |`1` |`0`=none, `1`=info, `2`=debug. + +|`crossOriginFilterOn` |`false` |*Camel 2.10:* If `true`, the server will support for cross-domain +filtering + +|`allowedOrigins` |`*` |*Camel 2.10:* The origins domain that support to cross, if the +`crosssOriginFilterOn` is `true` + +|`filterPath` | | *Camel 2.10:* The filterPath will be used by the CrossOriginFilter, if +the `crosssOriginFilterOn` is `true` + +|`disconnectLocalSession` | | *Camel 2.10.5/2.11.1: (Producer only)*: Whether to disconnect local +sessions after publishing a message to its channel. Disconnecting local +session is needed as they are not swept by default by CometD, and +therefore you can run out of memory. In Camel 2.16.1/2.15.5 or older the +default value is true. From newer versions the default value is false. +|======================================================================= + +You can append query options to the URI in the following format, +`?option=value&option=value&...` + +Here is some examples on How to pass the parameters + +For file (for webapp resources located in the Web Application directory +--> cometd://localhost:8080?resourceBase=file./webapp + + For classpath (when by example the web resources are packaged inside +the webapp folder --> +cometd://localhost:8080?resourceBase=classpath:webapp + +[[Cometd-Authentication]] +Authentication +^^^^^^^^^^^^^^ + +*Available as of Camel 2.8* + +You can configure custom `SecurityPolicy` and `Extension`'s to the +`CometdComponent` which allows you to use authentication as +http://cometd.org/documentation/howtos/authentication[documented here] + +[[Cometd-SettingupSSLforCometdComponent]] +Setting up SSL for Cometd Component +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +[[Cometd-UsingtheJSSEConfigurationUtility]] +Using the JSSE Configuration Utility +++++++++++++++++++++++++++++++++++++ + +As of Camel 2.9, the Cometd component supports SSL/TLS configuration +through the link:camel-configuration-utilities.html[Camel JSSE +Configuration Utility]. This utility greatly decreases the amount of +component specific code you need to write and is configurable at the +endpoint and component levels. The following examples demonstrate how +to use the utility with the Cometd component. You need to configure SSL +on the CometdComponent. + +[[Cometd-Programmaticconfigurationofthecomponent]] +Programmatic configuration of the component + +[source,java] +----------------------------------------------------------------------------------------------- +KeyStoreParameters ksp = new KeyStoreParameters(); +ksp.setResource("/users/home/server/keystore.jks"); +ksp.setPassword("keystorePassword"); + +KeyManagersParameters kmp = new KeyManagersParameters(); +kmp.setKeyStore(ksp); +kmp.setKeyPassword("keyPassword"); + +TrustManagersParameters tmp = new TrustManagersParameters(); +tmp.setKeyStore(ksp); + +SSLContextParameters scp = new SSLContextParameters(); +scp.setKeyManagers(kmp); +scp.setTrustManagers(tmp); + +CometdComponent commetdComponent = getContext().getComponent("cometds", CometdComponent.class); +commetdComponent.setSslContextParameters(scp); +----------------------------------------------------------------------------------------------- + +[[Cometd-SpringDSLbasedconfigurationofendpoint]] +Spring DSL based configuration of endpoint + +[source,xml] +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +... + <camel:sslContextParameters + id="sslContextParameters"> + <camel:keyManagers + keyPassword="keyPassword"> + <camel:keyStore + resource="/users/home/server/keystore.jks" + password="keystorePassword"/> + </camel:keyManagers> + <camel:trustManagers> + <camel:keyStore + resource="/users/home/server/keystore.jks" + password="keystorePassword"/> + </camel:keyManagers> + </camel:sslContextParameters>... + + <bean id="cometd" class="org.apache.camel.component.cometd.CometdComponent"> + <property name="sslContextParameters" ref="sslContextParameters"/> + </bean> +... + <to uri="cometds://127.0.0.1:443/service/test?baseResource=file:./target/test-classes/webapp&timeout=240000&interval=0&maxInterval=30000&multiFrameInterval=1500&jsonCommented=true&logLevel=2"/>... +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + +[[Cometd-SeeAlso]] +See Also +^^^^^^^^ + +* link:configuring-camel.html[Configuring Camel] +* link:component.html[Component] +* link:endpoint.html[Endpoint] +* link:getting-started.html[Getting Started] + http://git-wip-us.apache.org/repos/asf/camel/blob/64a2931f/docs/user-manual/en/SUMMARY.md ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md index cfed278..3ec12b3 100644 --- a/docs/user-manual/en/SUMMARY.md +++ b/docs/user-manual/en/SUMMARY.md @@ -106,6 +106,7 @@ * [CDI](cdi.adoc) * [Chunk](chunk.adoc) * [Cmis](cmis.adoc) + * [Cometd](cometd.adoc) * [JMS](jms.adoc) * [Metrics](metrics.adoc) * [Properties](properties.adoc)